茫然 发表于 2013-4-4 13:16:15

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

本帖最后由 茫然 于 2013-4-4 16:59 编辑

新手写个小程序,一个主窗口,一个“关于”窗口。
“关于”窗口显示后如何像SciTE编辑器--帮助-关于本作 那样始终保持在激活状?谢谢!

dhlhmgc 发表于 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 http://www.autoitx.com/images/common/back.gif

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

打开SciTE编辑器的“关于”窗口后,这时你点主窗口,”关于”窗口闪几下,始终在当前状态。后面的主窗口也不能编辑。要的就是这种效果。

dhlhmgc 发表于 2013-4-4 13:38:51

这个就不知道了,可能还需要设置窗口样式 和扩展样式 之类的,在帮助里找找吧!

ceoguang 发表于 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 http://www.autoitx.com/images/common/back.gif

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

举例说明这种效果:$Form1 = GUICreate("主窗口")
GUISetState(@SW_SHOW)
MsgBox(8192,"子窗口","此窗口始终保持激活状态","",$Form1)运行后 点击“主窗口” 就看以看出效果了。
只不过这是MsgBox产生的窗口,要是自己的窗口能这样就oK了!

zldfsz 发表于 2013-4-4 15:56:32

你是要这种效果吧http://www.autoitx.com/forum.php?mod=redirect&goto=findpost&pid=405649&ptid=30744

茫然 发表于 2013-4-4 16:54:16

本帖最后由 茫然 于 2013-4-4 16:58 编辑

你是要这种效果吧
zldfsz 发表于 2013-4-4 15:56 http://www.autoitx.com/images/common/back.gif

谢谢啊,搞定了! 效果刚刚的。
收到上面例子启发,特意写了个例子,给遇到此类问题的坛友有所帮助,省的多走弯路。#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
                Case $GUI_EVENT_CLOSE
                        Switch $nMsg
                                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
页: [1]
查看完整版本: 怎么使“关于”窗口始终保持激活状态,直到关闭?[已解决]