消息模式gui窗口转换[已解决]
本帖最后由 haijie1223 于 2011-4-19 11:53 编辑如果是 event 时,两个窗口之间转换是很简单的,而且如果关闭按钮不是主窗口的话,也可以实现转换。很方便。
如果是msg模式的话,几个窗口之间的转换,点关闭按钮时,如果不是主窗口,实现窗口转换而不是关闭程序。这样能实现么。 $Form1 = GUICreate('父窗口', 400, 300)
$Button1 = GUICtrlCreateButton('创建“子窗体”', 150, 100, 100, 50, 0)
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $Button1
GUISetState(@SW_DISABLE, $Form1)
$Form2 = GUICreate('子窗口', 200, 200)
$Button2 = GUICtrlCreateButton("关闭\退出", 50, 80, 100, 30, 0)
GUISetState()
While 1
Switch GUIGetMsg()
Case -3, $Button2
GUISetState(@SW_ENABLE, $Form1)
GUIDelete($Form2)
ExitLoop
EndSwitch
WEnd
EndSwitch
WEnd 使用guigetmsg高级模式,可以获得 产生事件的窗口句柄 ,从而得知是哪个窗口的关闭事件,再进行处理
GUIGetMsg ( [高级模式] )
参数
高级模式 [可选参数] 以数组的形式返回扩展信息。
0 = (默认)只返回捕获的事件。
1 = 返回一个含有事件及扩展信息的数组。
返回值
返回一个事件(ID)或一个数组,取决于“高级模式”参数的设置。
返回的“事件”是指发送消息的控件ID,或者是某个特殊事件(例如窗口正被关闭、最小化等等)。若没有消息则返回的事件值是 0。
事件 ID
0 无事件
控件 ID 发送消息的控件 ID
$GUI_EVENT_CLOSE 对话框(窗口)正被关闭(相关按钮被点击或系统菜单项被选中)
$GUI_EVENT_MINIMIZE 对话框(窗口)被最小化(窗口标题栏上的最小化按钮被点击)
$GUI_EVENT_RESTORE 对话框(窗口)被还原(任务栏图标被点击)
$GUI_EVENT_MAXIMIZE 对话框(窗口)被最大化(窗口标题栏上的最大化按钮被点击)
$GUI_EVENT_MOUSEMOVE 鼠标指针移动
$GUI_EVENT_PRIMARYDOWN 鼠标的主要按钮被按下
$GUI_EVENT_PRIMARYUP 鼠标的主要按钮被松开
$GUI_EVENT_SECONDARYDOWN 鼠标的次要按钮被按下
$GUI_EVENT_SECONDARYUP 鼠标的次要按钮被松开
当使用“高级模式”时,函数返回的是一个含有下列扩展信息的数组:
$array = 0 或 事件 ID 或 控件 ID
$array = 产生事件的窗口句柄
$array = 产生事件的控件句柄(若适用)
$array = 鼠标指针的当前 X 坐标(相对于 GUI 窗口)
$array = 鼠标指针的当前 Y 坐标(相对于 GUI 窗口 这样啊谢谢水大
页:
[1]