【转】AfxMessageBox、MessageBox、::MessageBox的区别
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表示在消息框内部显示的文本,消息框的标题为应用程序的可执行文件名(如Hello)。在第二种形式中,nIDPrompt为要显示的文本字符串在字符串表中的ID。函数调用时会自动从字符串表中载入字符串并显示在消息框中。nType为消息框中显示的按钮风格和图标风格的组合,可以采用|(或)操作符组合各种风格。
按钮风格
MB_ABORTRETRYIGNORE 消息框中显示Abort、Retry、Ignore按钮
MB_OK 显示OK按钮
MB_OKCANCEL 显示OK、Cancel按钮
MB_RETRYCANCEL 显示Retry、Cancel按钮
MB_YESNO 显示Yes、No按钮
MB_YESNOCANCEL 示Yes、No、Cancel按钮
图标风格
MB_ICONINFORMATION 显示一个i图标,表示提示
MB_ICONEXCLAMATION 显示一个惊叹号,表示警告
MB_ICONSTOP 显示手形图标,表示警告或严重错误
MB_ICONQUESTION 显示问号图标,表示疑问
与AfxMessageBox类似的函数MessageBox,它是CWnd的类成员函数:
int MessageBox( LPCTSTR lpszText,LPCTSTR lpszCaption = NULL,UINT nType = MB_OK );
两个函数的区别:AfxMessageBox比 MessageBox简单一些,因为它是一个全局函数所以不需要对应的一个窗口类,但是不能控制消息框标题,常用于调试程序时的内部数据输出或警告;MessageBox比较正式,常用在要提交的应用程序版本中,可以控制标题内容而不必采用含义不明的可执行文件名为标题。
举例:
AfxMessageBox(“Are you sure?”,MB_YESNO|MB_ICONQUESTION);
int a = MessageBox(TEXT( "是否确认删除?" ), TEXT("Warning!!"),4);
if (a == 6)
AfxMessageBox("Yes");
else
AfxMessageBox("No");
(其中#define IDYES 6 #define IDNO 7)
///
VC中可调用的函数大致可分三类:
1.类自己的函数,只对类自己的数据成员有作用;
2.AFX小组在设计 Application Framworks 时设计的全局函数,多冠在Afx前缀,在包含了MFC库/框架的工程中可用;
3.Windows API的全局函数。对所有Windows平台下的程序设计都可以调用,如Vb,Vc,Dephi等等。你说的 MessageBox是属于 CWnd 类的成员函数,只能在 CWnd 和CWnd的派生类的对象中调用;AfxMessageBox则可在任何地方调用。另外对应的还有:::MessageBox()这个windows API的全局函数。上述中1和3一般有一个区别,就是1要比3少一个参数,即窗口句柄。大家知道,这个句柄是通过 this 指针曲折转换得到的,不用程序员操心了。
本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/archive/2013/04/22/3036191.html,如需转载请自行联系原作者
【转】AfxMessageBox、MessageBox、::MessageBox的区别相关推荐
- AfxMessageBox和MessageBox区别
MFC以全局AfxMessageBox函数的形式为CWnd::MessageBox提供了一个可选对象.虽然两者很相似,但是AfxMessageBox可以从应用程序类,文档类,以及别的非窗口类中调用.A ...
- AfxMessageBox和MessageBox的用法
目录 一.AfxMessageBox 1. 函数定义原型 3. 返回值 二.MessageBox 1. 定义 2. 参数介绍 三. AfxMessageBox和MessageBox的区别 1. 区 ...
- AfxMessageBox()与MessageBox()
AfxMessageBox的函数原型: int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 ); ...
- AfxMessageBox与MessageBox函数
创建消息提示对话框: 前者调用的是MFC的底层函数库,后者调用的是最为基本的Win32 API. MessageBox()的函数原型如下: int MessageBox(LPCTSTR lpszTex ...
- Console.WriteLine()与MessageBox.Show()的区别
Console.WriteLine(); 将当前行终止符写入标准输出流 在学习控制台应用程序时经常用,输出到控制台 MessageBox.Show(); 显示可包含文本.按钮和符号(通知并指示用户) ...
- MessageBox和AfxMessageBox函数的区别
1.可以以下面的方式调用AfxMessageBox. AfxMessageBox("Are you sure?",MB_YESNO|MB_ICONQUESTION): 2.与Afx ...
- VS中MessageBox与AfxMessageBox用法与区别
一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox(HWN ...
- VC中MessageBox与AfxMessageBox用法与区别
一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox(HWN ...
- 转:VC中MessageBox的常见用法
一.关于MessageBox 消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合. 1.MessageBox("这是一个最简单 ...
最新文章
- matlab与python通信_python和matlab之间数据传输方法
- MySQL数据库多种安装方法及企业级安装实践
- dockerfile 中的 multi-stage 多阶段构建
- python中range什么意思_python里range什么意思
- 如何使用Cmder替换cmd
- 第三十期:程序员报告:男性占比超87% 北京月薪12184元最高
- C语言中printf输出特殊字符(“%d“或者“\n“)
- 【计算机网络复习】1.1.3 速率相关的性能指标
- golang 排序_堆 堆排序 优先队列 图文详解(Golang实现)
- 知方可补不足~数据库名称和数据库别名不同了怎么办
- 调用Interop.zkemkeeper.dll无法使用解决方案
- vue中 点击二维码刷新图片(src不变)
- 算法-codeup1928-日期差值
- Python爬虫--urllib
- java se和ocjp_OCJP 考试题之七 - osc_sejhgcp0的个人空间 - OSCHINA - 中文开源技术交流社区...
- 磊科Q3刷236W 免交换机双拨
- The Django Book(一)
- 学计算机专科好还是牙医好,孩子明年高考,牙科、计算机两个专业,怎么选?...
- 筋膜悬吊面部提升术后悔死了,几天消肿多久有效果
- 【面试:基础篇06:FailFast与FailSafe机制】
热门文章
- [swift] LeetCode 347. Top K Frequent Elements
- CheckBox jsp+javaScript多项选择checkbox取值实现
- validation problems were found problem cvc-complex-type.2.4a
- Java 读取 INI 配置文件的方法
- Java进阶知识点:协变与逆变
- 理解Load Average做好压力测试
- 修改joomla!底部版权信息的方法
- CSS中常见的长度单位 1
- nvarchar,nchar,vchar,nvchar,char…
- ssm面试题总结 spring springmvc mybatis面试题