找回密码
 加入
搜索
查看: 6315|回复: 7

[GUI管理] 怎么使“关于”窗口始终保持激活状态,直到关闭?[已解决]

  [复制链接]
发表于 2013-4-4 13:16:15 | 显示全部楼层 |阅读模式
本帖最后由 茫然 于 2013-4-4 16:59 编辑

新手写个小程序,一个主窗口,一个“关于”窗口。
“关于”窗口显示后如何像SciTE编辑器--帮助-关于本作 那样始终保持在激活状?谢谢!
发表于 2013-4-4 13:17:06 | 显示全部楼层
设置指定窗口的"总是在顶层"属性.


WinSetOnTop ( "窗口标题", "窗口文本", 标志 )
 楼主| 发表于 2013-4-4 13:34:19 | 显示全部楼层
本帖最后由 茫然 于 2013-4-4 13:39 编辑
设置指定窗口的"总是在顶层"属性.


WinSetOnTop ( "窗口标题", "窗口文本", 标志 )
dhlhmgc 发表于 2013-4-4 13:17


试过了,不行的。
虽然在顶层了,但这时点一下后面的窗口(主窗口),这个关于窗口就是非激活状态了,而且能点到后面主窗口的内容,比如按钮、edit。

打开SciTE编辑器的“关于”窗口后,这时你点主窗口,”关于”窗口闪几下,始终在当前状态。后面的主窗口也不能编辑。要的就是这种效果。
发表于 2013-4-4 13:38:51 | 显示全部楼层
这个就不知道了,可能还需要设置窗口样式 和扩展样式 之类的,在帮助里找找吧!
发表于 2013-4-4 13:58:30 | 显示全部楼层
GUISetState(主窗口句柄,@SW_DISABLE)
 楼主| 发表于 2013-4-4 15:24:10 | 显示全部楼层
本帖最后由 茫然 于 2013-4-4 15:46 编辑
GUISetState(主窗口句柄,@SW_DISABLE)
ceoguang 发表于 2013-4-4 13:58


谢谢版主!
应该是GUISetState(@SW_DISABLE,主窗口句柄)吧?
这样只是禁用了主窗口,没有保持“关于”窗口始终保持激活。和SciTE里的“关于”窗口效果不一样。

举例说明这种效果:
$Form1 = GUICreate("主窗口")
GUISetState(@SW_SHOW)
MsgBox(8192,"子窗口","此窗口始终保持激活状态","",$Form1)
运行后 点击“主窗口” 就看以看出效果了。
只不过这是MsgBox产生的窗口,要是自己的窗口能这样就oK了!
发表于 2013-4-4 15:56:32 | 显示全部楼层

评分

参与人数 1金钱 +10 收起 理由
魔导 + 10 好久不见咯 大师~~~

查看全部评分

 楼主| 发表于 2013-4-4 16:54:16 | 显示全部楼层
本帖最后由 茫然 于 2013-4-4 16:58 编辑
你是要这种效果吧
zldfsz 发表于 2013-4-4 15:56


谢谢啊,搞定了! 效果刚刚的。
收到上面例子启发,特意写了个例子,给遇到此类问题的坛友有所帮助,省的多走弯路。
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $gu_Form1 = GUICreate("主窗口", 330, 312, -1, -1)
GUISetState(@SW_SHOW)
Global $gu_Button_About = GUICtrlCreateButton("关于", 40, 275, 75, 25)
Global $gu_Button_Exit = GUICtrlCreateButton("退出", 216, 275, 75, 25)
Global $gu_Form2 = GUICreate("关于...", 314, 96, -1, -1, $WS_SYSMENU, $WS_EX_TOPMOST, $gu_Form1)
While 1 ;消息循环模式
        $nMsg = GUIGetMsg(1)
        Switch $nMsg[0]
                Case $GUI_EVENT_CLOSE
                        Switch $nMsg[1]
                                Case $gu_Form1
                                        Exit
                                Case $gu_Form2
                                        GUISetState(@SW_HIDE, $gu_Form2)
                                        GUISetState(@SW_ENABLE, $gu_Form1)
                                        WinActivate($gu_Form1)
                        EndSwitch
                Case $gu_Button_Exit
                        Exit
                Case $gu_Button_About
                        GUISetState(@SW_DISABLE, $gu_Form1)
                        GUISwitch($gu_Form2)
                        GUISetState(@SW_SHOW)
        EndSwitch
WEnd
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-18 12:10 , Processed in 0.079947 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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