我们写MFC程序的时候经常会用到MessageBox这个函数,用来显示一些提示信息,而且通常我们用的都是很简单的形式。今天我看了Word里退出是显示的提示保存的对话框之后忽然想到用MFC的MessageBox是不是也可以实现呢?于是,我仔细的查了一下,于是就总结了一些常用的用法。
先来看Messagebox函数的原型:
int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );
参数解释:
lpszText ------ 对话框显示的内容
pszCaption ------ 对话框的标题,默认的空
nType ------ 对话框的类型,默认的类型为只显示一个确定按钮
前两个参数都不需要说明解释,主要的就是最后一个类型参数。MFC中为MessageBox定义了一些类型:
MB_ABORTRETRYIGNORE ------ 对话框显示中止,重试和忽略三个按钮
MB_OK ------ 前面说过,是默认类型,对话框只显示一个确定按钮
MB_OKCANCEL ------ 显示确定和取消两个按钮
MB_RETRYCANCEL ------ 显示重试和取消两个按钮
MB_YESNO ------- 显示是和否两个按钮
MB_YESNOCANCEL ------ 显示是,否和取消两个按钮
以上是全部的基本的标识,还有一些辅助的标识:
MB_DEFBUTTON1 ------ 用来确定选中的按钮,表示选中第一个按钮,此项为默认的选中按钮
MB_DEFBUTTON2 ------ 表示选中第二个按钮
MB_DEFBUTTON3 ------ 表示选中第三个按钮
在MessageBox显示的对话框上除了可以显示文字,MFC里还定义了一些图标:
MB_ICONEXCLAMATION和MB_ICONWARNING ------ 显示一个黄色三角形,中间为一个感叹号,警告
MB_ICONINFORMATION和MB_ICONASTERISK ------ 显示一个蓝色的圆,里面为一个字母i,帮助信息
MB_ICONQUESTION ------ 显示一个蓝色的圆,里面为一个问号,疑问
MB_ICONHAND,MB_ICONSTOP和MB_ICONERROR ------ 显示一个红色的圆,里面是一个叉叉
以上这些不同的风格经过组合之后就可以得到我们想要的各种对话框,前面我提过的Word里的那种也可以,
可以用以下的代码来实现:
MessageBox( "是否将更改保存?", "Microsoft office Word",
MB_YESNOCANCEL|MB_ICONEXCLAMATION);
这样就可以了,接下来就可以为不同的选择写代码。有些人不知道怎么写MessageBox的点击响应,其实很简单,注意看这个函数的原型,它有一个int型的返回值,我们就可以通过这个值来判定那个按钮被点击了。MFC定义了一组宏来标识:
IDABORT ------ 按下了中止按钮
IDRETRY ------ 按下了重试按钮
IDIGNORE ------ 按下了忽略按钮
IDOK ------ 按下了确定按钮
IDCANSEL ------ 按下了取消按钮
IDYES ------ 按下了是按钮
IDNO ------ 按下了否按钮
其实这些值就是从1--7就几个数。有了这些标识我们就可以这么写程序:
if(MessageBox( "是否将更改保存?", "Microsoft office Word",
MB_YESNOCANCEL|MB_ICONEXCLAMATION)==IDYES) //如果点击了是
{
// 保存
}
else if(MessageBox( "是否将更改保存?", "Microsoft office Word",
MB_YESNOCANCEL|MB_ICONEXCLAMATION)==IDNO) //如果点击了否
{
// 退出
}
出自http://nnusunvan.blog.163.com/blog/static/90480635200871073451484/
评论