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

[AU3基础] 【已解决】请教如何让MsgBox水平、垂直居中于GUI(跟随GUI走)?

[复制链接]
发表于 2022-4-14 10:30:52 | 显示全部楼层 |阅读模式
本帖最后由 smooth 于 2022-4-18 10:14 编辑

MsgBox默认是水平、垂直居中于电脑屏幕的,它并不跟随GUI走,MsgBox所有的必选、可选参数中,没有设置它的位置的参数。请教如何才能让MsgBox水平、垂直居中于GUI呢?
发表于 2022-4-14 10:39:18 | 显示全部楼层
如果你用的msgbox函数的话,可能要再开一个进程来移动它了




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2022-4-14 10:39:47 | 显示全部楼层
1.自建子窗口模拟msgbox ;  2. hook窗口创建消息并移动到指定位置
 楼主| 发表于 2022-4-14 11:08:22 | 显示全部楼层
zghwelcome 发表于 2022-4-14 10:39
1.自建子窗口模拟msgbox ;  2. hook窗口创建消息并移动到指定位置

自建GUI就不考虑了,请教如何hook呢?有例子吗?
 楼主| 发表于 2022-4-14 11:10:58 | 显示全部楼层
nhnhwsnh 发表于 2022-4-14 10:39
如果你用的msgbox函数的话,可能要再开一个进程来移动它了

我用的是MsgBox函数,请教大佬,如何开进程来移动它呢,有例子吗?
 楼主| 发表于 2022-4-14 16:21:25 | 显示全部楼层
本帖最后由 smooth 于 2022-4-14 16:37 编辑

变通的方法,等Msgbox窗口出现再移动它:
Func _MoveMsgboxWin()
        If WinExists("温馨提示") Then
             WinMove("温馨提示", "", WinGetPos($hgui)[0] + WinGetPos($hgui)[2] / 2 - WinGetPos("温馨提示")[2] / 2, WinGetPos($hgui)[1] + WinGetPos($hgui)[3] / 2 - WinGetPos("温馨提示")[3] / 2)
        EndIf
EndFunc

问题:
1、出现跳级现象,就可以很明显的看到,Msgbox从一个地方跳到另外一个地方;
2、有时候移动失败,Msgbox还是在刚出现的地方没动。
发表于 2022-4-15 12:35:19 | 显示全部楼层
在发贴前先搜索一下论坛,不是有类似的贴子.https://www.autoitx.com/forum.ph ... amp;fromuid=7638255
 楼主| 发表于 2022-4-15 16:57:40 | 显示全部楼层
tubaba 发表于 2022-4-15 12:35
在发贴前先搜索一下论坛,不是有类似的贴子.https://www.autoitx.com/forum.php?mod=redirect&goto=findpost ...

搜是搜了,找得不够仔细,有时候是关键词用的不恰当,谢谢大佬。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 16:20 , Processed in 0.076506 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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