Page 1 sur 1

GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

Posté : mer. 06 févr. 2019 11:22
par Barthandelus
Bonjour,

Je possède une application en $WS_POPUP mais j'ai besoin de la rendre DRAGGABLE. Pour ça, j'ai suivit les indications du lien suivant : https://www.autoitscript.com/wiki/Movin ... PARENTDRAG

Mais je souhaiterais transformer l'usage d'un Label à une image. Précisément sur l'image background. Sachant que mon application possède sur l'ensemble de ses inputs (excepté le background) un padding de 15px, ça me laisse la possibilité de drag l'application sur cette marge.

Pour procéder, j'utilise le code suivant, qui malheureusement ne fonctionne pas :

; Background
GUICtrlCreatePic("background.jpg", 0, 0, (@DesktopWidth / 4), 435, $SS_BITMAP, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetState(-1, $GUI_DISABLE)

A noter que le résultat est le même avec ou sans $GUI_DISABLE. Une idée ?

Re: GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

Posté : mer. 06 févr. 2019 22:12
par walkson
Vous n'êtes pas bavard au niveau du code, difficile de voir une erreur !
Remplacez $SS_BITMAP par Default
Le code ci-dessous fonctionne très bien (l'image dans le même dossier que le code)

Code : Tout sélectionner

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $Form1 = GUICreate("Form1", 600, 400, -1, -1, $WS_POPUP )
Global $Pic1 = GUICtrlCreatePic("background.bmp", 0, 0, 600, 400)
GUICtrlSetState(-1,$GUI_DISABLE)
Global $Input1 = GUICtrlCreateInput("Input1", 32, 30, 529, 30)
Global $Input11 = GUICtrlCreateInput("Input2", 32, 70, 529, 30)
Global $Input111 = GUICtrlCreateInput("Input3", 32, 110, 529, 30)
Global $Pic11 = GUICtrlCreatePic("background.bmp", 32, 150, 529, 30, Default, $GUI_WS_EX_PARENTDRAG)
GUISetState(@SW_SHOW)
While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE; ou echap
   Exit

 EndSwitch
WEnd

Re: GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG  

Posté : jeu. 07 févr. 2019 08:40
par mikell
Pourquoi ne pas utiliser l'exemple n°2 du wiki ?

 ; Original code - martin
 #include <GuiconstantsEx.au3>
 #include <WindowsConstants.au3>
 #include <SendMessage.au3>
 
 Global Const $SC_DRAGMOVE = 0xF012
 
 HotKeySet("{ESC}", "On_Exit")
 
 $hGUI = GUICreate("X", 300, 200, -1, -1, $WS_POPUP)
 $Pic1 = GUICtrlCreatePic("background.bmp", 0, 0, 300, 200)
 GUICtrlSetState(-1,$GUI_DISABLE)
 $hButton = GUICtrlCreateButton("Test", 10, 35, 80, 30)
 GUISetState()
 
 While 1
     Switch GUIGetMsg()
         Case $GUI_EVENT_PRIMARYDOWN
             _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)
         Case $hButton
             On_Button()
     EndSwitch
 WEnd
 
 Func On_Button()
     MsgBox(0, "Hi", "Button Pressed")
 EndFunc   ;==>On_Button
 
 Func On_Exit()
     Exit
 EndFunc   ;==>On_Exit

Re: GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

Posté : jeu. 14 mars 2019 17:13
par Barthandelus
Réponse extrêmement tardive mais mieux vaux tard que jamais ! :wink:

En effet l'exemple 2 est fonctionnel et bien plus simple à intégrer.

Je pense que le premier exemple ne fonctionnait pas car j'avais positionner dans mon code l'image bien avant le reste des éléments GUI.

Dans tout les cas, problème résolu !