-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
GUIGetMsg(1) - вернуть расширенную информацию о событии в виде массива.
Меня интересует как сделать постоянный цикл...
вот обычный пример : (Если события не происходит то $msg = 0)
Код:
While 1
$msg = GUIGetMsg()
Switch
Case 0
;~ постоянный цикл
EndSwitch
WEnd
А как тоже самое сделать тут :
Код:
#include <GUIConstantsEx.au3>
Global $GUIWidth = 250, $GUIHeight = 250
$ParentWin = GUICreate("Parent GUI", $GUIWidth, $GUIHeight)
$ParentWin_Pos = WinGetPos($ParentWin, "")
GUISetState(@SW_SHOW)
$ChildWin = GUICreate("Child GUI", $GUIWidth, $GUIHeight, $ParentWin_Pos[0] + 100, $ParentWin_Pos[1] + 100, -1, -1, $ParentWin)
$Button1 = GUICtrlCreateButton("Button1", 96, 88, 75, 25)
GUISetState(@SW_SHOW)
GUISwitch($ParentWin)
While 1
$msg = GUIGetMsg(1)
Select
Case $msg[1] = $ParentWin
If $msg[0] = $GUI_EVENT_CLOSE Then
Exit
EndIf
Case $msg[1] = $ChildWin
Switch $msg[0]
Case 0
ConsoleWrite($msg[0] & @crlf) ; Вот тут нужны постояно выполняющиеся действия т.е. вывод в консоль(для примера)
Case $Button1
MsgBox(64, "Button1", $Button1)
Exit
EndSwitch
EndSelect
WEnd
|
Цитата:
Цитата FlatX007
как тоже самое сделать тут »
|
Что именно нужно сделать, выводить в консоль если нет событии? или только для дочернего окна?
А вообще так не опрашивают события, нужно перевернуть условия в Case:
Код:
#include <GUIConstantsEx.au3>
Global $GUIWidth = 250, $GUIHeight = 250
$ParentWin = GUICreate("Parent GUI", $GUIWidth, $GUIHeight)
$ParentWin_Pos = WinGetPos($ParentWin, "")
GUISetState(@SW_SHOW)
$ChildWin = GUICreate("Child GUI", $GUIWidth, $GUIHeight, $ParentWin_Pos[0] + 100, $ParentWin_Pos[1] + 100, -1, -1, $ParentWin)
$Button1 = GUICtrlCreateButton("Button1", 96, 88, 75, 25)
GUISetState(@SW_SHOW)
GUISwitch($ParentWin)
While 1
$msg = GUIGetMsg(1)
Switch $msg[0]
Case $GUI_EVENT_CLOSE
If $msg[1] = $ParentWin Then Exit
Case $Button1
MsgBox(64, "Button1", $Button1)
Exit
Case Else
ConsoleWrite($msg[0] & @CRLF) ; Вот тут нужны постояно выполняющиеся действия т.е. вывод в консоль(для примера)
EndSwitch
WEnd
|
Да - то ,что нужно ...
А почему Case Else ? я так незнал что можно делать.
Код:
Case Else
ConsoleWrite($msg[0] & @CRLF) ; Вот тут нужны постояно выполняющие....
|
Цитата:
Цитата FlatX007
А почему Case Else ? я так незнал что можно делать. »
|
Или в твоем примере заменить Case 0 на Case -11. (но это только для примера, ибо ясно что пример Creator-a есть то что надо...) Не то написал, это связано еще и с активностью мышки...
|
Если так сделать то инфа в консоль выдаётся когда я двигаю мышь ... :o, забавно
|
Цитата:
Цитата FlatX007
инфа в консоль выдаётся когда я двигаю мышь »
|
-11 это $GUI_EVENT_MOUSEMOVE, но я лично не рекоммендую использовать числа вместо реальных констант, это портит читабельность кода.
|
Время: 20:45.
© OSzone.net 2001-