Код:
Код: Выделить всё
#include
#include
$Form = GUICreate("Какая то программа", 600, 60)
$Button = GUICtrlCreateButton("просто кнопка для примера", 0, 0, 160, 21)
$Form1pos = WinGetPos($Form)
$chForm = GUICreate("Дополнительное окно", 600, 70, $Form1pos[0],$Form1pos[1]+93, _
BitOR($WS_POPUP,$WS_BORDER), $WS_EX_TOOLWINDOW, $Form)
GUISetBkColor (0x09FF00)
GUICtrlCreateLabel ("Дочернее окно",5, 5, 185, 25)
GUIRegisterMsg($WM_MOVE, "WM_MOVE")
GUISetState(@SW_SHOW, $Form)
While 1
$msg = GUIGetMsg(1) ;using the "advanced" parameter
Select
Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Form
ExitLoop
;Следующий Case нужен только если на дочернее окно $chForm не будет установлен стиль $WS_POPUP.
;Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $chForm
;GUISetState(@SW_HIDE, $chForm)
Case $msg[0] = $Button
If Not BitAND(WinGetState($chForm), 2) Then
GUISetState(@SW_SHOW, $chForm)
Else
GUISetState(@SW_HIDE, $chForm)
EndIf
EndSelect
WEnd
Func WM_MOVE($hWndGUI, $MsgID, $WParam, $LParam)
If $hWndGUI = $Form Then
$aParent_Pos = WinGetPos($Form)
WinMove($chForm, "", $aParent_Pos[0], $aParent_Pos[1]+93)
Else
EndIf
EndFuncВот в этом примере Дочернее окно Gui прилепляется к Главному окну и при перемещении главного окна, оно перемещается вместе с ним. Вопрос такой, можно ли сделать чтобы Дочернее окно так прилеплялись к окну нужной мне проги (чтобы вместо Главного окна в примере была моя прога, любое окно, ну хоть блокнот, например), ибо у меня выходит так, что при запуске, если сделать похожее по координатам окна, Дочернее окно прилепляется, но при перемещении окна Моей проги, не двигается вслед за ним.
- там возвращается массив, а для Win* функции это тоже самое что и пустая строка (""), т.е текущее (активное) окно. Нужно использовать WinGetHandle...