本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/renjwjx/archive/2009/04/14/4073076.aspx

关于如何修改AfxMessageBox的标题,不看后悔的 收藏
刚开始一筹莫展,后来从网上发现有好几种方式。但是这些方法有错误的。

所以,网上的东西,我们也不能一股脑的接受。

方法一:

一,新建一个基于对话框的工程Ex0811a。
二,增加一个按钮,其响应函数为:
void CEx0811aDlg::OnButton1()
{
         AfxMessageBox("欢迎你!");
}
三,利用类向导重写CEx0811aApp::DoMessageBox函数,代码如下:
int CEx0811aApp::DoMessageBox(LPCTSTR lpszPrompt, UINT nType, UINT nIDPrompt)
{
          LPCTSTR pOldAppName = m_pszAppName;
          m_pszAppName = "新标题";// 其实afxmessgebox的标题就是这个变量决定的
           int iRet = CWinApp::DoMessageBox(lpszPrompt, nType, nIDPrompt);
           m_pszAppName = pOldAppName ;
            return iRet ;
}

方法二:

如果在线程里面跑,那么直接修改AfxGetApp()->m_pszAppName

当然这种方法没有保存原来的名字

上面的程序乍一看没什么问题,但是,运行起来有时会有问题。

查看msdn,发现上面有一句容易忽略的话。看来大家都忽略了。我也是程序出错才思考的。

If you assign a value to m_pszAppName, it must be dynamically allocated on the heap. The CWinApp destructor calls free( ) with this pointer. You many want to use the _tcsdup( ) run-time library function to do the allocating. Also, free the memory associated with the current pointer before assigning a new value. For example:

Example:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszAppName);
//Change the name of the application file.
//The CWinApp destructor will free the memory.
m_pszAppName=_tcsdup(_T("d:\\somedir\\myapp.exe"));

上面的意思是说,不能直接赋值,应该要先free(m_pszAppName),然后申请空间,然后赋值。

注:修改对话框的标题直接

setwindowtext("新标题");

转载于:https://www.cnblogs.com/lzx_ok/archive/2009/12/02/1615401.html

关于 m_pszAppName相关推荐

  1. (转)另一篇:VC导出数据到EXCEL

    另一篇:VC导出数据到EXCEL 2010-08-28 17:03:47|  分类: 默认分类 |  标签: |字号大中小 订阅 我们制作应用软件的时候,经常要把结果以报表的形式输出,当前使用较为广泛 ...

  2. MFC全局函数开局——AfxGetApp解剖

    MFC全局函数开局--AfxGetApp解剖[转自晨风], MFC中有不少的全局函数,方便在不同对象中获取不同的内容或创建不同的对象.主要全局函数有: AfxWinInit() AfxBeginThr ...

  3. 文档类CDocument、子框架类CFrameWnd及视图类CView的关系及如何相互调用

    文档类.子框架类及视图类的关系及如何相互调用 收藏 了解文档和视图的相互作用关系是编写MFC程序的基本功.但是MFC的应用程序框架把文档和视图之间的关系封装了起来,初学的朋友往往不得要领,因此写程序往 ...

  4. 【MFC】CWinApp类详解

    00. 目录 文章目录 00. 目录 01. 概述 02. 数据成员 03. 成员方法 04. 命令处理 05. 附录 01. 概述 CWinApp是一个基类,你通过它来继承Windows应用程序对象 ...

  5. 【MFC系列-第11天】CWinApp类成员分析

    11.1 资源管理器开发(C语言) 三种位运算 //#include <AtlBase.h> //混合 c_file.attrib |= _A_HIDDEN|_A_RDONLY; //判断 ...

  6. 【MFC系列-第10天】非模式对话框开发

    10.1 程序左上角图标设置 通过SendMessage发送WM_SETICON消息来设置 10.2 纯Win32程序开发和技巧(借助MFC源码) 10.3 非模式对话框的调用 a)调用CDialog ...

  7. MFC读取配置文件GetPrivateProfileString

    VC++中 3 个主要 写入/读取配置文件ini的函数: bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCT ...

  8. MFC 程序来龙去脉

    MFC 程序来龙去脉 --寻找与Win32 App的关联 声明 本文由张杰原创,参考了侯俊杰先生的<深入浅出MFC>,源码摘自 Microsoft Visual Studio 9.0\VC ...

  9. VC中使用GetModuleFileName获取应用程序路径

    .//与API函数GetModuleFileName获取应用程序目录有何不一样? 采用.//也能获得应用程序目录,采用GetModuleFileName也能获得,二者有何不同? 一样! 一个是相对路径 ...

最新文章

  1. 星型模型 3nf的区别_贵州省遵义市工业模型经典案例展示
  2. fedora14 an mysql_Fedora 14下 MySQL 更改密码
  3. IOS第三天(@property与@synthesize的用法)
  4. Java大数一些个人的见解
  5. 李宏毅机器学习课程4~~~分类:概率生成模型
  6. 《2017中国大数据及AI人才发展报告》均薪38万,招聘猛增6倍
  7. 04_mysql增删改操作
  8. 虚拟linux第一次启动网卡配置过程
  9. 小米公司在区块链领域的布局:小米WiFi链也开始种“米”了
  10. Python实现统计二叉树叶子结点个数
  11. This tag and its children can be replaced by one TextView/ and a compound drawable
  12. 别人都不知道的“好用”网站,让你的效率飞快
  13. tp-link 路由器iD登陆时,经常的发送请求失败,解决办法如下
  14. 弹箭三自由度弹道计算程序(c++ vs2017 )
  15. Dockerfile: max depth exceeded
  16. 韩天峰 - Swoole4-全新的PHP编程模式
  17. vivo手机系统打印服务器,原来vivo手机自带扫描功能,文件瞬间电子化!几千的扫描仪省下了...
  18. 计算机课外活动小结,课外活动总结
  19. 实现智能语音识别服务
  20. 威纶tk6070ik与台达变频器vdf-s485通讯程序 自己编写的威纶触摸屏与台达变频器的通讯

热门文章

  1. leetcode —— 1013. 将数组分成和相等的三个部分
  2. 吴恩达机器学习 —— 2.7 计算图
  3. 深入理解傅里叶变换的性质:实函数、卷积、相关、功率谱、频响函数
  4. ISSN和EAN原理及转换【转载】
  5. 从Ubuntu 14 04 LTS版升级到Ubuntu 16 04 LTS
  6. Golang笔记——tcp 编程
  7. python 水位_Leetcode 42. 接雨水 - python - 递归 查找分水岭
  8. css自动换行加前置_StudyNode -- CSS
  9. java响应式网页设计_基于HTML5的响应式网站的设计与实现(论文).docx
  10. centos更改默认python_CentOS系统python默认版本由python2改为python3