1. 程式人生 > >MessageBox與AfxMessageBox(主要詳解)的區別

MessageBox與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
);

引數

lpszText

一個cstrin物件或非空字串的指標,訊息框上顯示內容就是cstring物件或非空字串。

nType

訊息框的風格。按鈕風格和圖示風格的組合,可以採用|(或)操作符組合各種風格。訊息框的在這裡都適用,如下:

按鈕風格

按鈕風格

MB_ABORTRETRYIGNORE

訊息框中顯示Abort、Retry、Ignore按鈕

MB_OK

顯示OK按鈕

MB_OKCANCEL

顯示OK、Cancel按鈕

MB_RETRYCANCEL

顯示Retry、Cancel按鈕

MB_YESNO

顯示Yes、No按鈕

MB_YESNOCANC

顯示Yes、No、Cancel按鈕

圖示風格

圖示風格

MB_ICONINFORMATION

顯示一個i圖示,表示提示

MB_ICONEXCLAMATION

顯示一個驚歎號,表示警告

MB_ICONSTOP

顯示手形圖示,表示警告或嚴重錯誤

MB_ICONQUESTION

顯示問號圖示,表示疑問

nIDHelp

訊息的幫助文字ID;0是預設的幫助內容。

nIDPrompt

字串表裡的標識字串的ID。

返回值

記憶體不夠返回0;否則是下面的一個:

  • IDABORT   選擇了退出按鈕。
  • IDCANCEL   選擇了取消按鈕
  • IDIGNORE   選擇忽略按鈕
  • IDNO   沒選擇任何按鈕
  • IDOK  選擇OK按鈕
  • IDRETRY   .選擇重試按鈕
  • IDYES   選擇YES按鈕

如果訊息框有一個取消按鈕,當按下ESC鍵或點選取消按鈕,返回值就是IDCANCEL。如果訊息框沒有取消按鈕,按ESC沒有效果。函式AfxFormatString1和AfxFormatString2在格式化文字方面很方便。

備註

第一個函式顯示訊息文字通過lpszText並且使用nIDHelp來描述幫助資訊。幫助資訊在按下幫助鍵(如F1)的時候可以跳轉到對應的主題。

第二個函式顯示的字串通過nIDPrompt來引用資源。幫助頁面通過nIDHelp來連結。預設值是-1,字串資源的ID,nIDPrompt就用做是幫助資訊。閱讀Technical Note 28瞭解更多關於如何定義幫助資訊。

程式碼示例

Visual C++ 

 Copy Code

// A simple message box, with only the OK button.

AfxMessageBox(_T("Simple message box."));

 

// A message box that uses a string from a string table

// with yes and no buttons and the stop icon.

// NOTE: nStringID is an integer that contains a valid id of

// a string in the current resource.

AfxMessageBox(nStringID, MB_YESNO|MB_ICONSTOP);

標頭檔案

Header:afxwin.h

參考閱讀

MFC Macros and Globals

CWnd::MessageBox

Messagebox和AfxMessageBox的區別

AfxMessageBox

Messagebox

全域性的對話方塊,是MFC的API

Win32API函式

可以用於任何程式

只能用在CWnd及其派生類中

不能任意設定標題

可以任意設定標題

常用於除錯程式時的內部資料輸出或警告

常用在要提交的應用程式版本中,可以控制標題內容而不必採用含義不明的可執行檔名為標題

不會掛起執行緒

會掛起執行緒 等待確認後 繼續

最終結果是呼叫 :windowsAPI MessageBox()

是模態對話方塊

 

轉載自 : https://www.cnblogs.com/ZHENGJUNupperclassman/p/7496722.html