複製鏈接
請複製以下鏈接發送給好友

AfxMessageBox

鎖定
AfxMessageBox是一種函數原型,特點是應用程序的可執行文件,功能是消息框內部顯示的文本,AfxMessageBox和CWnd類成員函數類似,使用起來很方便,因為是Afx 基於框架的函數。
中文名
AfxMessageBox
屬    性
函數原型
釋    義
消息框內部顯示的文本
特    點
應用程序可執行文件

AfxMessageBox函數原型

int AfxMessageBox(LPCTSTR lpszText,UINT nType = MB_OK,UINT nIDHelp = 0);
int AFXAPI AfxMessageBox(UINT nIDPrompt,UINT nType = MB_OK,UINT nIDHelp = (UINT) –1);

AfxMessageBox參數

[1] 參數1
在第一種形式中,lpszText表示彈窗內容,彈窗標題為應用程序EXE可執行文件名(如Hello)。
在第二種形式中,nIDPrompt為文本字符串ID。函數調用時會自動從字符串表中根據ID載入字符串顯示。
[2] nType
nType為消息框中顯示的按鈕風格和圖標風格的組合,可以採用|(或)操作符組合各種風格。
按鈕風格
MB_ABORTRETRYIGNORE 消息框中顯示Abort、Retry、Ignore按鈕
MB_OK 顯示OK按鈕
MB_OKCANCEL 顯示OK、Cancel按鈕
MB_RETRYCANCEL 顯示Retry、Cancel按鈕
MB_YESNO 顯示Yes、No按鈕
MB_YESNOCANCEL 顯示Yes、No、Cancel按鈕
[3] nIDHelp
圖標風格
MB_ICONINFORMATION 顯示一個i圖標,表示提示
MB_ICONEXCLAMATION 顯示一個驚歎號,表示警告
MB_ICONSTOP 顯示手形圖標,表示警告或嚴重錯誤
MB_ICONQUESTION 顯示問號圖標,表示疑問
使用時,可以只調用AfxMessageBox(LPCTSTR lpszText);這樣默認風格為AfxMessageBox(LPCTSTR lpszText,MB_OK|MB_ICONEXCLAMATION );

AfxMessageBox返回值

返回值有8種,如果內存不夠,則返回0,否則返回以下值中的一種,分別對應相應的按鈕被點擊:
IDABORT、IDCANCEL、IDIGNORE、IDNO、IDOK 、IDRETRY、IDYES。
MSDN原文:
Zero if there is not enough memory to display the message box; otherwise one of the following values is returned:
IDABORT The Abort button was selected.
IDCANCEL The Cancel button was selected.
IDIGNORE The Ignore button was selected.
IDNO The No button was selected.
IDOK The OK button was selected.
IDRETRY The Retry button was selected.
IDYES The Yes button was selected.
If a message box has a Cancel button, the IDCANCEL value will be returned if either the ESC key is pressed or the Cancel button is selected. If the message box has no Cancel button, pressing the ESC key has no effect.

AfxMessageBox主要區別

與AfxMessageBox類似的函數MessageBox,它是CWnd的類成員函數:
int MessageBox( LPCTSTR lpszText,LPCTSTR lpszCaption = NULL,UINT nType = MB_OK );

AfxMessageBox兩個函數的區別

AfxMessageBox比MessageBox簡單一些,因為它是一個全局函數所以不需要對應着一個窗口類,但是不能控制消息框標題,常用於調試程序時的內部數據輸出或警告;MessageBox比較正式,常用在要提交的應用程序版本中,可以控制標題內容而不必採用含義不明的可執行文件名為標題。

AfxMessageBox舉例

AfxMessageBox("Are you sure?",MB_YESNO|MB_ICONQUESTION);
int a = MessageBox(TEXT("是否確認刪除?"),TEXT("Warning!!"),4);
if(a==6)
AfxMessageBox("Yes");
else
AfxMessageBox("No");
(其中#define IDYES 6 #define IDNO 7)

AfxMessageBox主要區別

1.MessageBox 如果在非CWnd類中使用則是API函數,使用起來非常不便,必須指定標題和樣式。
否則使用CWnd類的函數,只需一個內容參數就可以了,AfxMessageBox和CWnd類成員函數類似,使用起來很方便,因為是Afx 基於框架的函數。
2.AfxMessageBox是模態對話框,你不進行確認時程序不往下運行,它會阻塞你當前的線程,除非你程序是多線程的程序,否則只有等待模態對話框被確認。
3、如果用MFC的話,請儘量使用afxmessagebox,因為這個全局的對話框最安全,也最方便。
但是在WIN32 SDK的情況下只能使用MESSAGEBOX。