GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Barthandelus
Niveau 3
Niveau 3
Messages : 30
Enregistré le : mer. 02 janv. 2019 14:34
Status : Hors ligne

GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

#1

Message par Barthandelus » mer. 06 févr. 2019 11:22

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 ?

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 640
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

#2

Message par walkson » mer. 06 févr. 2019 22:12

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
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5812
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG  

#3

Message par mikell » jeu. 07 févr. 2019 08:40

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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
Barthandelus
Niveau 3
Niveau 3
Messages : 30
Enregistré le : mer. 02 janv. 2019 14:34
Status : Hors ligne

Re: GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

#4

Message par Barthandelus » jeu. 14 mars 2019 17:13

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 !

Répondre