Что нового

Как разрешить перетаскивание окна за любую точку?

GUIMish

Знающий
Сообщения
122
Репутация
12
Привет всем!

У меня такой вопрос, возможно такое, что-бы хватаешь окно за любое место и перетаскиваешь?
Дело в том что у окна стоит стиль $WS_POPUP, и я не знаю, как реализовать этот эффект.

Стиль $GUI_WS_EX_PARENTDRAG на label не подходит, так как мне нужно перетаскивать окно, с любого места!

Вот окно:
Код:
#include <GUIConstants.au3>
$Window = GUICreate("Окно", 500, 300, -1, -1, $WS_POPUP)


GUISetState()
While 1
	Switch GUIGetMsg()
		Case -3
			Exit
	EndSwitch
WEnd
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Можно ещё так:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MenuConstants.au3>

Global $bMouseJumpToCaption = False

$HWnd = GUICreate("DRAG GUI", 240, 180, -1, -1, $WS_POPUP)
GUIRegisterMsg($WM_LBUTTONDOWN, "WM_LBUTTONDOWN")

GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam)
	If BitAND(WinGetState($hWnd), 32) Then
		Return $GUI_RUNDEFMSG
	EndIf
	
	;DllCall("user32.dll", "int", "ReleaseCapture")
    ;DllCall("user32.dll", "int", "SendMessage", "hWnd", $hWnd, "int", 0xA1, "int", 2, "int", 0)
	
	DllCall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", $WM_SYSCOMMAND, "int", ($bMouseJumpToCaption ? $SC_MOVE : 0xF009), "int", 0)
EndFunc
 
Верх