天天看點

AfxMessageBox與MessageBox函數

建立消息提示對話框:

前者調用的是MFC的底層函數庫,後者調用的是最為基本的Win32 API。

MessageBox()的函數原型如下:

int MessageBox(

           LPCTSTR lpszText,

           LPCTSTR lpszCaption = NULL,

           UINT nType = MB_OK 

       );
           

參數說明:

lpszText:需要顯示的消息字元串。

lpszCaption:消息對話框的标題字元串。預設值為NULL。取值為NULL時使用預設标題。

nType:消息對話框的風格和屬性。預設為MB_OK風格,即隻有“确定”按鈕。 nType的取值可以是下面兩個表中任取一個值,也可以是各取一個值的任意組合。即可以指定一個對話框類型,也可以指定一個對話框圖示,還可以兩者都設定。

如果想要設定nType的值為類型和圖示的組合,可以像這樣取值:MB_OKCANCEL | MB_ICONQUESTION。按位取或就可以了。

AfxMessageBox()的函數原型為:

int AfxMessageBox(

           LPCTSTR lpszText,

           UINT nType = MB_OK,

           UINT nIDHelp = 0 

       );
           

lpszText:同CWnd::MessageBox()函數;

nType:CWnd::MessageBox()函數;

nIDHelp:此消息的幫助的上下文ID。預設值為0,取0時表示要使用應用程式的預設幫助上下文。

AfxMessageBox與MessageBox函數

AfxMessageBox建立舉例

NT_PTR nRes;

nRes = AfxMessageBox(_T("您确定要進行加法計算嗎?"), MB_OKCANCEL | MB_ICONQUESTION, 0);
           
AfxMessageBox與MessageBox函數

MessageBox建立舉例

INT_PTR nRes;

nRes = MessageBox(_T("您确定要進行加法計算嗎?"), _T("加法電腦"), MB_OKCANCEL | MB_ICONQUESTION);
           
AfxMessageBox與MessageBox函數

另外 AfxMessageBox 找不到辨別符?

此處解決方法很簡單,就是将程式中的AfxMessageBox函數全部替換成為MessageBox函數。

網上常說的在頭檔案裡面加入#include<afxwin.h>或者#include<stdafx.h>(其實兩者是一樣的,因為stdafx.h也調用了afxwin.h,而afxwin.h裡面辨別了函數AfxMessageBox)。

打開了AfxMessageBox函數所在的頭檔案afxwin.h,使用VS平台進行搜尋,于是就能看到這個……

AfxMessageBox與MessageBox函數

另外要注意大小寫,afxMessageBox就不行。

繼續閱讀