hallo
ja es geht darum:
Ich hab ein gui erstellt mit Popup style und ein parent gui mit ebenfalls Popup style um das Haupt gui bewegen zu können hab
ich ein label erstellt mit $GUI_WS_EX_PARENTDRAG style leider geht das nicht
also hab ich mich ran gemacht und eine Funktion geschrieben die beim $GUI_EVENT_PRIMARYDOWN berechnet wo die Maus sich gerade befindet
und solange die Maus unten gehalten wird das Fenster bewegen soll geht gut aber das Fenster bewegt sich sehr langsam
gibt es sonst noch Möglichkeiten das Fenster zu bewegen wenn ein parent gui oben drauf liegt??
danke im voraus
freue mich über jede Antwort
mit freundlichen grüßen dpjeezy
Gui bewegen popup style
-
- [ offen ]
-
dpjeezy89 -
28. Juni 2009 um 04:29 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Mit WM_MOVE geht das besser:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$hMainGui = GUICreate('Main', 600, 400, 100, 100, $WS_POPUP)
GUISetBkColor(0xFFFFAA)
GUICtrlCreateLabel(' Main', 0, 0, 600, 400, Default, $GUI_WS_EX_PARENTDRAG)
GUISetState()
$hChildGui = GUICreate('Child', 600, 400, 710, 100, $WS_POPUP)
GUICtrlCreateLabel(' Child', 0, 0, 600, 400, Default, $GUI_WS_EX_PARENTDRAG)
GUISetBkColor(0xAAFFFF)
GUISetState()
GUIRegisterMsg($WM_MOVE, 'WM_MOVE')Do
[/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSEFunc WM_MOVE($hWnd, $Msg, $wParam, $lParam)
[/autoit]
Local $xPos = BitAND($lParam, 0xFFFF), $yPos = BitShift($lParam, 16)
If $hWnd = WinGetHandle($hMainGui) Then
WinMove($hChildGui, '', $xPos + 610, $yPos)
Else
WinMove($hMainGui, '', $xPos - 610, $yPos)
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_MOVE -
vielen dank "ich" hatte vorher ein problem weil meine GUI sich nicht bewegen konnte aber seit jetzt kann sie´s super dankeschön
-
vielen dank funkt super
-
Die Position muss noch umgerechnet werden, da man den Wert ohne Vorzeichen bekommt:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
$hMainGui = GUICreate('Main', 600, 400, 100, 100);, $WS_POPUP)
GUISetBkColor(0xFFFFAA)
GUICtrlCreateLabel(' Main', 0, 0, 600, 400, Default, $GUI_WS_EX_PARENTDRAG)
GUISetState()
$hChildGui = GUICreate('Child', 600, 400, 710, 100, $WS_POPUP)
GUICtrlCreateLabel(' Child', 0, 0, 600, 400, Default, $GUI_WS_EX_PARENTDRAG)
GUISetBkColor(0xAAFFFF)
GUISetState()
GUIRegisterMsg($WM_MOVE, 'WM_MOVE')Do
[/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSEFunc WM_MOVE($hWnd, $Msg, $wParam, $lParam)
[/autoit]
Local $xPos = BitAND($lParam, 0xFFFF), $yPos = BitShift($lParam, 16)
If $xPos > 32767 Then $xPos -= 0x10000
If $yPos > 32767 Then $yPos -= 0x10000
If $hWnd = $hMainGui Then
WinMove($hChildGui, '', $xPos + 610, $yPos)
Else
WinMove($hMainGui, '', $xPos - 610, $yPos)
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_MOVE