|
一个未公开的API可以实现定时关闭消息框,感觉十分有用。这个API函数的参数如下:
hwnd:窗口句柄,可以设为0
lpText:消息框显示内容,类似于MsgBox函数的第一个参数Prompt
lpCaption:消息框标题,类似于MsgBox函数的第三个参数Caption
wType:消息框类型,类似于MsgBox函数的第二个参数Buttons
wlange:不是太明白这个参数,0或者1都看不出什么差别
dwTimeout:延时时间,单位是毫秒
返回的值和vbMsgBoxResult常数一样,多了一个返回值32000表示超过延时时间未选择任何按钮。- Private Declare Function MsgBoxEx Lib "user32" Alias "MessageBoxTimeoutA" ( _
- ByVal hwnd As Long, _
- ByVal lpText As String, _
- ByVal lpCaption As String, _
- ByVal wType As VbMsgBoxStyle, _
- ByVal wlange As Long, _
- ByVal dwTimeout As Long) As Long
- Private Sub TestMsgboxEx()
- Dim ret As Long
- ret = MsgBoxEx(0, "请选择", "两秒后自动关闭", vbYesNo + vbInformation, 1, 2000)
- If ret = 32000 Then
- Debug.Print "超时关闭"
- ElseIf ret = vbYes Then
- Debug.Print "选择Yes"
- ElseIf ret = vbNo Then
- Debug.Print "选择No"
- End If
- End Sub
复制代码 |
|