找回密码
 加入
搜索
查看: 6020|回复: 3

[GUI管理] 消息模式gui窗口转换[已解决]

[复制链接]
发表于 2011-4-19 10:25:58 | 显示全部楼层 |阅读模式
本帖最后由 haijie1223 于 2011-4-19 11:53 编辑

如果是 event 时,两个窗口之间转换是很简单的,而且如果关闭按钮不是主窗口的话,也可以实现转换。很方便。
如果是msg模式的话,几个窗口之间的转换,点关闭按钮时,如果不是主窗口,实现窗口转换而不是关闭程序。这样能实现么。

评分

参与人数 1金钱 +20 收起 理由
creativewwz + 20

查看全部评分

发表于 2011-4-19 10:57:54 | 显示全部楼层
$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
发表于 2011-4-19 11:25:20 | 显示全部楼层
使用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] = 0 或 事件 ID 或 控件 ID
$array[1] = 产生事件的窗口句柄
$array[2] = 产生事件的控件句柄(若适用)
$array[3] = 鼠标指针的当前 X 坐标(相对于 GUI 窗口)
$array[4] = 鼠标指针的当前 Y 坐标(相对于 GUI 窗口
 楼主| 发表于 2011-4-19 11:49:56 | 显示全部楼层
这样啊  谢谢水大
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-11 17:12 , Processed in 0.086572 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表