WPF程式設計,C#中對話方塊自動關閉的一種方法。
阿新 • • 發佈:2018-12-14
MessageBoxTimeout是一個微軟未公開的Windows API函式。實現定時訊息,功能類似於MessageBox。如果使用者不迴應,能定時關閉訊息框。函式由user32.dll匯出,windows2000及以下沒有此函式。
原型:
int MessageBoxTimeoutA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds); int MessageBoxTimeoutW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds)[1]
引數:
hwnd//訊息框的擁有視窗。
lptext//訊息框的內容。
lpCaption//訊息框的標題。
uType//指定一個決定對話方塊的按鈕型別和圖示型別的位標誌集。
wLanguageId//函式擴充套件,一般取0。
dwMilliseconds//訊息框延遲關閉時間,單位:毫秒。
UTYPE取值:
uType:按鈕型別,以下給出常量,可相加。 意思是從需要的每一組中選擇一種功能,將其前面的數值相加,寫在uType的取值處, 這樣,對話方塊就能應用所有選定的功能。 每組只能取一個型別,第五組除外,複製於易語言給出的提示。 第一組(描述對話方塊中顯示按鈕的型別與數目): 0、#確認鈕;1、#確認取消鈕;2、#放棄重試忽略鈕;3、#取消是否鈕;4、#是否鈕;5、#重試取消鈕 第二組(描述圖示的樣式): 16、#錯誤圖示; 32、#詢問圖示; 48、#警告圖示; 64、#資訊圖示 第三組(說明哪一個按鈕是預設預設值): 0、#預設按鈕一; 256、#預設按鈕二; 512、#預設按鈕三; 768、#預設按鈕四 第四組(決定如何等待訊息框結束): 0、#程式等待; 4096、#系統等待 第五組(其它): 65536、#位於前臺; 524288、#文字右對齊
返回值:
除了選則第一組的0型別時,返回是1,其它型別都是預設返回是32000。
確認:1
取消:2
中止:3
重試:4
忽略:5
是:6
否:7
1、在類的開頭增加如下程式碼:
[DllImport("user32.dll")]
public static extern int MessageBoxTimeoutA(IntPtr hWnd, string msg, string Caps, int type, int Id, int time); //引用DLL
像這樣:
2、 在按鈕事件或者滑鼠事件等其它事件中,加入如下程式碼:
MessageBoxTimeoutA((IntPtr)0, "3秒後自動關閉", "訊息框", 0, 0, 3000); // 直接呼叫 3秒後自動關閉
像這樣: