office交流網--QQ交流群號

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

能夠定時自動關閉的Msgbox消息對話框

2017-09-21 08:40:00
zstmtony
原創
2769
在Access VBA或Excel VBA中如何自動關閉彈出的消息框(即定時消失)
經過研究和測試,可以通過 API函數MessageBoxTimeout,可控制消息框自動關閉

這個API 函數就是 MessageBoxTimeOut函數(注意Windows 2000沒有這個函數,必須在Windows XP及以上操作系統才有):


API MessageBoxTimeOut函數原型如下:


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



參數說明:


    .參數 hwnd, 整數型, , 窗口句柄  
    .參數 lpText, 文本型, , 消息框內容  
    .參數 lpCaption, 文本型, , 消息框標題  
    .參數 uType, 整數型, , 消息框按鈕類型,確認按鈕、重試按鈕之類  
    .參數 wlange, 整數型, , 一般為0,語言ID  
    .參數 dwTimeout, 整數型, , 延遲的時間 ,以毫秒為單位  


參數詳細具體說明:

‘Office交流網整理


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

Tmtony測試后特別說明:

1.參數說明:父窗口的句柄為NULL的情況下,將彈出非模態對話框;延時關閉的時間為0的情況下,彈出的MessageBox需要手動關閉

2.這個是微軟未文檔化的MessageBoxTimeout函數,可以延時自動關閉自身彈出的MessageBox對話框,但微軟將來是否繼續支持,不得而知

3.需要指出的是,Windows 2000的user32.dll沒有導出這個函數。

4. dwTimeout:等待時間,單位為毫秒,3 秒后關閉就寫 3000

分享
北京十一选五基本走势