一个好玩的API函数MessageBoxTimeout,可控制消息框自动关闭

本文介绍了一种在Windows环境下使用易语言实现自动关闭弹出消息框的方法,通过调用MessageBoxTimeOut函数,无需额外线程即可解决困扰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天去查了资料如何自动关闭弹出的消息框,不少网友给出的办法是另外使用一个线程来控制,个人觉得麻烦了

 

最后终于找到了这个函数(在易语言论坛发现的。)

 

简单说一下MessageBoxTimeOut函数(Windows 2000没有这个函数):

hwnd:窗口句柄

lpText:弹出消息框的内容

lpCaption:弹出消息框的标题

uType:按钮类型,以下给出常量,可相加,每组只能取一个类型,第五组除外,复制于易语言给出的提示:

第一组(描述对话框中显示按钮的类型与数目):
    0、#确认钮; 1、#确认取消钮; 2、#放弃重试忽略钮; 3、#取消是否钮;     4、#是否钮; 5、#重试取消钮
第二组(描述图标的样式):
    16、#错误图标; 32、#询问图标; 48、#警告图标; 64、#信息图标
第三组(说明哪一个按钮是缺省默认值):
    0、#默认按钮一; 256、#默认按钮二; 512、#默认按钮三; 768、#默认按钮四
第四组(决定如何等待消息框结束):
    0、#程序等待; 4096、#系统等待
第五组(其它):
    65536、#位于前台; 524288、#文本右对齐

wLanguageId:语言ID,默认写0就可以了

dwMilliseconds:等待时间,单位为毫秒,3秒后关闭就写3000

 

C++的:

int WINAPI MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpText, IN LPCSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
int WINAPI MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText, IN LPCWSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);

 

VB的:

Private Declare Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long, ByVal wlange As Long, ByVal dwTimeout As Long) As Long

 

易语言的:

.版本 2

.DLL命令 MessageBoxTimeout, 整数型, "user32.dll", "MessageBoxTimeoutA"
    .参数 hwnd, 整数型, , 窗口句柄
    .参数 lpText, 文本型, , 消息框内容
    .参数 lpCaption, 文本型, , 消息框标题
    .参数 uType, 整数型, , 消息框按钮类型,确认按钮、重试按钮之类
    .参数 wlange, 整数型, , 一般为0,语言ID
    .参数 dwTimeout, 整数型, , 延迟的时间 ,以毫秒为单位

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

至天

看心情啦,最好留着自己喝奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值