• MessageBox、::MessageBox 、AfxMessageBox区别


    Messagebox函数在API和MFC里的区别:

    API的定义如下
    int MessageBox(
      HWND hWnd,          // handle of owner window
      LPCTSTR lpText,     // address of text in message box
      LPCTSTR lpCaption, // address of title of message box
      UINT uType          // style of message box
    );

    MFC里的定义如下
    CWnd::MessageBox
    int MessageBox(

      LPCTSTR lpszText,

      LPCTSTR lpszCaption = NULL,

      UINT nType = MB_OK

    );

    所以说,MFC里只是少了第一个参数,同时第三和第四都有默认值了,这就是它们的区别,其他的相同

    同时在MFC的窗体类里要调用API的那个,在写成如下:
    ::MessageBox(NULL, "msg", "caption", MB_OK);

     

    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为消息框中显示的按钮风格和图标风格的组合,可以采用|(或)操作符组合各种风格。

    AfxMessageBox不能控制消息框标题,常用于调试程序时的内部数据输出或警告;MessageBox比较正式,常用在要提交的应用程序版本中,可以控制标题内容而不必采用含义不明的可执行文件名为标题。

    MessageBox是模态对话框,你不进行确认时程序不往下运行,它会阻塞你当前的线程为,除非你程序是多线程的程序,否则只有等待模态对话框被确认。

  • 相关阅读:
    Ubuntu oracle SDK替换OpenJDK
    用update-alternatives管理java版本
    安卓配置
    CS 159: Advanced Topics in Machine Learning: Structured Prediction
    ros bag 代码操作
    vim 方式快捷编辑代码
    文件权限
    操作系统连不上网
    github权限管理
    nmap基本命令使用
  • 原文地址:https://www.cnblogs.com/youxin/p/2763214.html
Copyright © 2020-2023  润新知