GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

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

GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

#1

Message 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 ?
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

#2

Message 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
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG  

#3

Message 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
" 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 4
Niveau 4
Messages : 53
Enregistré le : mer. 02 janv. 2019 14:34
Status : Hors ligne

Re: GUICtrlCreatePic() + $GUI_WS_EX_PARENTDRAG

#4

Message 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 !
Répondre