running-frag
why me?
- Сообщения
- 441
- Репутация
- 60
Что хочется увидеть - есть главное окно и кнопка, по клику которой появляется дочернее привязанное к главному на 10 пикселей (к примеру). При перемещении двигаются оба.
Пример без привязки
ps: где то видел апупенный пример этого всего дела на форуме, но поиск не помог, а буку затёр :(
Добавлено:
Пример без привязки
Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Opt ('MustDeclareVars', 1)
Local $main, $child, $button, $action
$main = GUICreate ('Main GUI', 600, 500)
$button = GUICtrlCreateButton ('button', 20, 470, 70, 20)
GUISetState (@SW_SHOW, $main)
$child = GUICreate ("Child GUI", 300, 250,-1,-1,-1,-1,$main)
GUISetState (@SW_HIDE, $child)
While True
$action = GUIGetMsg()
Select
Case $action = $GUI_EVENT_CLOSE
Exit
Case $action = $button
GUISetState (@SW_SHOW, $child)
EndSelect
WEnd
ps: где то видел апупенный пример этого всего дела на форуме, но поиск не помог, а буку затёр :(
Добавлено:
Сообщение автоматически объединено:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
Opt('GUIOnEventMode', 1)
Opt('MustDeclareVars', 1)
Global $hParentWin, $hChildWin
_Example1()
While 1
Sleep(10)
WEnd
Func _ProExit()
Exit
EndFunc
Func _CloseWin()
GUIDelete(@GUI_WinHandle)
EndFunc
Func _Example1()
MsgBox(64, 'Пример 1', 'Обычное дочерное окно')
$hParentWin = GUICreate('Родителськое окно')
GUISetOnEvent($GUI_EVENT_CLOSE, '_Example2')
$hChildWin = GUICreate('Дочерное окно', 300, 200, -1, -1, $WS_SYSMENU, -1, $hParentWin)
GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseWin')
GUISetState(@SW_SHOW, $hParentWin)
GUISetState(@SW_SHOW, $hChildWin)
EndFunc
Func _Example2()
GUIDelete($hParentWin)
GUIDelete($hChildWin)
MsgBox(64, 'Пример 2', 'Дочерное окно перемещается вместе с родительским окном')
$hParentWin = GUICreate('Родителськое окно')
GUISetOnEvent($GUI_EVENT_CLOSE, '_Example3')
$hChildWin = GUICreate('Дочерное окно', 300, 200, -1, -1, $WS_SYSMENU, $WS_EX_MDICHILD, $hParentWin)
GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseWin')
GUISetState(@SW_SHOW, $hParentWin)
GUISetState(@SW_SHOW, $hChildWin)
EndFunc
Func _Example3()
GUIDelete($hParentWin)
GUIDelete($hChildWin)
MsgBox(64, 'Пример 3', 'Дочерное окно внутри родительского окна')
$hParentWin = GUICreate('Родителськое окно')
GUICtrlCreateLabel('', -100, -100, 0, 0)
GUISetOnEvent($GUI_EVENT_CLOSE, '_ProExit')
$hChildWin = GUICreate('Дочерное окно', 300, 200, 10, 10, $WS_SYSMENU)
GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseWin')
GUISetState(@SW_SHOW, $hParentWin)
_WinAPI_SetParent($hChildWin, $hParentWin)
GUISetState(@SW_SHOW, $hChildWin)
EndFunc