找回密码
 加入
搜索
查看: 4494|回复: 8

[AU3基础] 【已解决】Msgbox有没有办法置顶?

  [复制链接]
发表于 2017-1-24 14:24:25 | 显示全部楼层 |阅读模式
本帖最后由 229989799 于 2017-1-25 23:05 编辑

Msgbox有没有办法置顶?
有时候Msgbox的窗口不在最顶层,电脑下方任务栏能看到msgbox消息框,但是实际窗口被其他窗口遮盖了无法点击。。有什么办法强制让msgbox在所有窗口最顶层,如何设置:如果用户没有对msgbox操作就无法按其他东西。。
简单理解为,不点击msgbox的确定,就无法使用其他功能


解决办法二种:
msgbox(262144+16,"标题","文本")
msgbox(16,"标题","文本","",form1)
发表于 2017-1-24 15:17:44 | 显示全部楼层
不点击msgbox的确定,就无法使用其他功能   这个可以在弹出确认对话框前设置窗口不能操作,确认后再设置回来!  相关函数 GUISetState
 楼主| 发表于 2017-1-24 15:41:11 | 显示全部楼层
回复 2# heroxianf


    如果被其他对话框挡住了msgbox,这样就会导致GUI无法使用了。。
比如msgbox被一个网页挡住了,msgbox不在网页上一层,所以点不到确定或关闭,只能在任务栏里点msgbox右键关闭了,不方便哦。。
发表于 2017-1-24 16:49:51 | 显示全部楼层
回复 3# 229989799


    我也没有找到相关的说明,不过你可以试试加上 MSGBOX 最后一个参数 [可选] 显示对话框的父窗句柄.

这样当弹出MSGBOX界面自动就不能操作了,而且弹出MSGBOX和窗口是一体的。

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 200, 192, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        MsgBox(0, '', '', '', $Form1)
        EndSwitch
WEnd
发表于 2017-1-24 16:54:08 | 显示全部楼层
回复 3# 229989799


   如果你之前设置了窗体置顶 那么MSGBOX 也是永远在最前端。  目前我是这么使用的。
发表于 2017-1-24 17:07:32 | 显示全部楼层
Msgbox加上$MB_TOPMOST类型。
发表于 2017-1-24 17:20:57 | 显示全部楼层
回复 6# 帆船


    帮助我也没仔细看呢!   

MsgBox($MB_TOPMOST, '', '')

这样确实置顶了,不过不是我想要的那种效果~   这些方法应该满足楼主了。
 楼主| 发表于 2017-1-25 23:03:17 | 显示全部楼层
多谢6 7楼的兄弟,新年大吉。。2种置顶各有好处,结合使用就满足了。。多谢你们。。
发表于 2017-1-25 23:56:34 | 显示全部楼层
还是应该多看帮助啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 20:46 , Processed in 0.076912 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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