Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3473|回复: 4

[分享] 定时关闭MsgBox-未公开的API

[复制链接]
发表于 2011-1-20 20:35 | 显示全部楼层 |阅读模式
一个未公开的API可以实现定时关闭消息框,感觉十分有用。这个API函数的参数如下:

hwnd:窗口句柄,可以设为0
lpText:消息框显示内容,类似于MsgBox函数的第一个参数Prompt
lpCaption:消息框标题,类似于MsgBox函数的第三个参数Caption
wType:消息框类型,类似于MsgBox函数的第二个参数Buttons
wlange:不是太明白这个参数,0或者1都看不出什么差别
dwTimeout:延时时间,单位是毫秒
返回的值和vbMsgBoxResult常数一样,多了一个返回值32000表示超过延时时间未选择任何按钮。
  1. Private Declare Function MsgBoxEx Lib "user32" Alias "MessageBoxTimeoutA" ( _
  2.     ByVal hwnd As Long, _
  3.     ByVal lpText As String, _
  4.     ByVal lpCaption As String, _
  5.     ByVal wType As VbMsgBoxStyle, _
  6.     ByVal wlange As Long, _
  7.     ByVal dwTimeout As Long) As Long
  8. Private Sub TestMsgboxEx()
  9.     Dim ret As Long
  10.     ret = MsgBoxEx(0, "请选择", "两秒后自动关闭", vbYesNo + vbInformation, 1, 2000)
  11.     If ret = 32000 Then
  12.         Debug.Print "超时关闭"
  13.     ElseIf ret = vbYes Then
  14.         Debug.Print "选择Yes"
  15.     ElseIf ret = vbNo Then
  16.         Debug.Print "选择No"
  17.     End If
  18. End Sub
复制代码
发表于 2011-1-20 20:40 | 显示全部楼层
回复

使用道具 举报

发表于 2011-1-20 23:40 | 显示全部楼层
回复

使用道具 举报

发表于 2011-1-20 23:43 | 显示全部楼层
不错不错,
回复

使用道具 举报

发表于 2011-1-20 23:44 | 显示全部楼层
回复 放浪形骸 的帖子

如何知道看见了代码,知道里面有api函数呢????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-29 18:04 , Processed in 0.423835 second(s), 3 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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