消息对话框
本节讲解Windows系统中最常用最简单的一类对话框--消息对话框。
我们在使用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_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 |
一个停止消息图标出现在消息框 |
|
|
标志 |
含义 |
MB_DEFAULT_DESKTOP_ONLY |
接收输入的当前桌面一定是一个缺省桌面。否则,函数调用失败。缺省桌面是一个在用户已经纪录且以后应用程序在此上面运行的桌面。 |
MB_HELP |
把一个Help按钮增加到消息框。选择Help按钮或按F1产生一个Help事件。 |
MB_RIGHT |
文本为右调整 |
MB_RTLREADING |
用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。 |
MB_SETFOREGROUND |
消息框变为前景窗口。在内部系统为消息个调用SetForegroundWindow函数。 |
MB_TOPMOSI |
消息框用WS_EX_TOPMOST窗口类型来创建MB_SERVICE_NOTIFICATION。 |
如果想要设置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:单击“是”按钮。
。。。。。。。。。。。。。。。。。。。结束。。。。。。。。。。。。。。。