Visual C++提供三个消息对话框函数,他们的原型为
int AfxMessageBox(LPCTSTR lpText, UINT nType = MB_OK, UINT nIDHelp = 0);
int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT nType);
int CWnd::MessageBox(LPCTSTR lpText, LPCTSTR lpCaption = NULL, UINT nType = MB_OK);
parameter:
hWnd:
此参数代表消息框拥有的窗口。如果为NULL,则消息框没有拥有窗口。
lpText:
消息框中要显示的内容。如果使用了Unicode库,则把文本变成:TEXT(/*sometext*/)
lpCaption:
消息框的标题。如果使用了Unicode库,则把文本变成:TEXT(/*sometext*/)
nType:
指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组合。指定下列标志中的一个来显示消息框中的按钮以及图标。
nIDHelp:
表示信息的上下文帮助。
MFC特例:
假如您创建了一个MFC工程,如果工程文档中有MainFrm.cpp的话,那么,本函数就被封装成了:
int MessageBox(LPCTSTR lpszText,LPCTSTR lpszCaption=NULL,UINT nType = MB_OK);
返回值:指定函数的结果。
下面的例子可以让我们对比两种函数的用法,两行代码的功能都是显示一个消息框,内容为“示例用法”
::MessageBox(NULL, "示例用法", "demo", MB_OK);
MessageBox("示例用法"); //采用了一些C++的语法特性使用消息框用起来更顺手
这 3 个函数分别是 MC 全局函数、Windows API 函数和 CWnd 类的成员函数,他们的功能基本相同,但适用范围有所不同。
AfxMessageBox()和 MessageBox()函数可以在程序的任何地方使用,而 CWnd::MessageBox()函数只能用于控件、对话框、窗口等一些窗口类中。
这 3 个函数都将返回用户选择按钮的情况,如返回值 IDOK、IDCANCEL、IDABORT 分别表示用户按下了 OK、Cancel、Abort 按钮。
uType参数:
按钮参数 |
含义 |
MB_OK |
默认值。有一个确认按钮在里面。 |
MB_YESNO |
有是和否在里面。 |
MB_ABORTRETRYIGNORE |
有Abort(放弃),Retry(重试)和Ignore(跳过) |
MB_YESNOCANCEL |
消息框含有三个按钮:Yes,No和Cancel |
MB_RETRYCANCEL |
有Retry(重试)和Cancel(取消) |
MB_OKCANCEL |
消息框含有两个按钮:OK和Cancel |
图标参数 | 含义 |
MB_ICONEXCLAMATION |
一个惊叹号出现在消息框 |
MB_ICONWARNING |
一个惊叹号出现在消息框 |
MB_ICONINFORMATION |
一个圆圈中小写字母i组成的图标出现在消息框 |
MB_ICONASTERISK |
一个圆圈中小写字母i组成的图标出现在消息框 |
MB_ICONQUESTION |
一个问题标记图标出现在消息框 |
MB_ICONSTOP |
一个停止消息图标出现在消息框 |
MB_ICONERROR |
一个停止消息图标出现在消息框 |
MB_ICONHAND |
一个停止消息图标出现在消息框 |