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的区别相关推荐

  1. AfxMessageBox和MessageBox区别

    MFC以全局AfxMessageBox函数的形式为CWnd::MessageBox提供了一个可选对象.虽然两者很相似,但是AfxMessageBox可以从应用程序类,文档类,以及别的非窗口类中调用.A ...

  2. AfxMessageBox和MessageBox的用法

    目录 一.AfxMessageBox 1. 函数定义原型 3.  返回值 二.MessageBox 1. 定义 ​2. 参数介绍 三. AfxMessageBox和MessageBox的区别 1. 区 ...

  3. AfxMessageBox()与MessageBox()

    AfxMessageBox的函数原型:     int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 ); ...

  4. AfxMessageBox与MessageBox函数

    创建消息提示对话框: 前者调用的是MFC的底层函数库,后者调用的是最为基本的Win32 API. MessageBox()的函数原型如下: int MessageBox(LPCTSTR lpszTex ...

  5. Console.WriteLine()与MessageBox.Show()的区别

    Console.WriteLine(); 将当前行终止符写入标准输出流 在学习控制台应用程序时经常用,输出到控制台 MessageBox.Show();  显示可包含文本.按钮和符号(通知并指示用户) ...

  6. MessageBox和AfxMessageBox函数的区别

    1.可以以下面的方式调用AfxMessageBox. AfxMessageBox("Are you sure?",MB_YESNO|MB_ICONQUESTION): 2.与Afx ...

  7. VS中MessageBox与AfxMessageBox用法与区别

    一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox(HWN ...

  8. VC中MessageBox与AfxMessageBox用法与区别

    一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox(HWN ...

  9. 转:VC中MessageBox的常见用法

    一.关于MessageBox       消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合.        1.MessageBox("这是一个最简单 ...

最新文章

  1. matlab与python通信_python和matlab之间数据传输方法
  2. MySQL数据库多种安装方法及企业级安装实践
  3. dockerfile 中的 multi-stage 多阶段构建
  4. python中range什么意思_python里range什么意思
  5. 如何使用Cmder替换cmd
  6. 第三十期:程序员报告:男性占比超87% 北京月薪12184元最高
  7. C语言中printf输出特殊字符(“%d“或者“\n“)
  8. 【计算机网络复习】1.1.3 速率相关的性能指标
  9. golang 排序_堆 堆排序 优先队列 图文详解(Golang实现)
  10. 知方可补不足~数据库名称和数据库别名不同了怎么办
  11. 调用Interop.zkemkeeper.dll无法使用解决方案
  12. vue中 点击二维码刷新图片(src不变)
  13. 算法-codeup1928-日期差值
  14. Python爬虫--urllib
  15. java se和ocjp_OCJP 考试题之七 - osc_sejhgcp0的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. 磊科Q3刷236W 免交换机双拨
  17. The Django Book(一)
  18. 学计算机专科好还是牙医好,孩子明年高考,牙科、计算机两个专业,怎么选?...
  19. 筋膜悬吊面部提升术后悔死了,几天消肿多久有效果
  20. 【面试:基础篇06:FailFast与FailSafe机制】

热门文章

  1. [swift] LeetCode 347. Top K Frequent Elements
  2. CheckBox jsp+javaScript多项选择checkbox取值实现
  3. validation problems were found problem cvc-complex-type.2.4a
  4. Java 读取 INI 配置文件的方法
  5. Java进阶知识点:协变与逆变
  6. 理解Load Average做好压力测试
  7. 修改joomla!底部版权信息的方法
  8. CSS中常见的长度单位 1
  9. nvarchar,nchar,vchar,nvchar,char…
  10. ssm面试题总结 spring springmvc mybatis面试题