我們在使用Windows系統的過程中經常會見到消息對話框,提示我們有異常發生或提出詢問等。因為在軟件開發中經常用到消息對話框,所以MFC提供了兩個函數可以直接生成指定風格的消息對話框,而不需要我們在每次使用的時候都要去創建對話框資源和生成對話框類等。這兩個函數就是CWnd類的成員函數MessageBox()和全局函數AfxMessageBox()。
壹、CWnd::MessageBox()函數和AfxMessageBox()函數的用法
下面分別講解兩個函數的用法。
1、CWnd::MessageBox()函數
CWnd::MessageBox()的函數原型如下:
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK
);
參數說明:
lpszText:需要顯示的消息字符串。
lpszCaption:消息對話框的標題字符串。默認值為NULL。取值為NULL時使用默認標題。
nType:消息對話框的風格和屬性。默認為MB_OK風格,即只有“確定”按鈕。
nType的取值可以是下面兩個表中任取壹個值,也可以是各取壹個值的任意組合。即可以指定壹個對話框類型,也可以指定壹個對話框圖標,還可以兩者都設定。
對話框類型表:
nType 取值參數說明
MB_ABORTRETRY 有“終止”、“重試”和“忽略”按鈕
MB_OK 有“確定”按鈕
MB_OKCANCEL 有“確定”和“取消”按鈕
MB_RETRYCANCEL 有“重試”和“取消”按鈕
MB_YESNO 有“是”和“否”按鈕
MB_YESNOCANCEL 有“是”、“否”和“取消”按鈕
對話框圖標類型表:
nType
MB_ICONEXCLAMTION
MB_ICONWARNING
MB_ICONASTERISK
MB_ICONINFORMATION
MB_ICONQUESTION
MB_ICONHAND
MB_ICONSTOP
MB_ICONERROR
如果想要設置nType的值為類型和圖標的組合,可以像這樣取值:MB_OKCANCEL | MB_ICONQUESTION。按位取或就可以了。
2、AfxMessageBox()函數
AfxMessageBox()的函數原型為:
int AfxMessageBox(
LPCTSTR lpszText,
UINT nType = MB_OK,
UINT nIDHelp = 0
);
參數說明:
lpszText:同CWnd::MessageBox()函數
nType:CWnd::MessageBox()函數
nIDHelp:此消息的幫助的上下文ID。默認值為0,取0時表示要使用應用程序的默認幫助上下文。
二、CWnd::MessageBox()和AfxMessageBox()的返回值
我們在調用了上面兩個函數後,都可以彈出模態消息對話框。消息對話框關閉後,我們也都可以得到它們的返回值。兩者的返回值就是用戶在消息對話框上單擊的按鈕的ID,可以是以下值:
IDABORT:單擊“終止”按鈕。
IDCANCEL:單擊“取消”按鈕。
IDIGNORE:單擊“忽略”按鈕。
IDNO:單擊“否”按鈕。
IDOK:單擊“確定”按鈕。
IDRETRY:單擊“重試”按鈕。
IDYES:單擊“是”按鈕。