关于 m_pszAppName
本文来自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相关推荐
- (转)另一篇:VC导出数据到EXCEL
另一篇:VC导出数据到EXCEL 2010-08-28 17:03:47| 分类: 默认分类 | 标签: |字号大中小 订阅 我们制作应用软件的时候,经常要把结果以报表的形式输出,当前使用较为广泛 ...
- MFC全局函数开局——AfxGetApp解剖
MFC全局函数开局--AfxGetApp解剖[转自晨风], MFC中有不少的全局函数,方便在不同对象中获取不同的内容或创建不同的对象.主要全局函数有: AfxWinInit() AfxBeginThr ...
- 文档类CDocument、子框架类CFrameWnd及视图类CView的关系及如何相互调用
文档类.子框架类及视图类的关系及如何相互调用 收藏 了解文档和视图的相互作用关系是编写MFC程序的基本功.但是MFC的应用程序框架把文档和视图之间的关系封装了起来,初学的朋友往往不得要领,因此写程序往 ...
- 【MFC】CWinApp类详解
00. 目录 文章目录 00. 目录 01. 概述 02. 数据成员 03. 成员方法 04. 命令处理 05. 附录 01. 概述 CWinApp是一个基类,你通过它来继承Windows应用程序对象 ...
- 【MFC系列-第11天】CWinApp类成员分析
11.1 资源管理器开发(C语言) 三种位运算 //#include <AtlBase.h> //混合 c_file.attrib |= _A_HIDDEN|_A_RDONLY; //判断 ...
- 【MFC系列-第10天】非模式对话框开发
10.1 程序左上角图标设置 通过SendMessage发送WM_SETICON消息来设置 10.2 纯Win32程序开发和技巧(借助MFC源码) 10.3 非模式对话框的调用 a)调用CDialog ...
- MFC读取配置文件GetPrivateProfileString
VC++中 3 个主要 写入/读取配置文件ini的函数: bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCT ...
- MFC 程序来龙去脉
MFC 程序来龙去脉 --寻找与Win32 App的关联 声明 本文由张杰原创,参考了侯俊杰先生的<深入浅出MFC>,源码摘自 Microsoft Visual Studio 9.0\VC ...
- VC中使用GetModuleFileName获取应用程序路径
.//与API函数GetModuleFileName获取应用程序目录有何不一样? 采用.//也能获得应用程序目录,采用GetModuleFileName也能获得,二者有何不同? 一样! 一个是相对路径 ...
最新文章
- 星型模型 3nf的区别_贵州省遵义市工业模型经典案例展示
- fedora14 an mysql_Fedora 14下 MySQL 更改密码
- IOS第三天(@property与@synthesize的用法)
- Java大数一些个人的见解
- 李宏毅机器学习课程4~~~分类:概率生成模型
- 《2017中国大数据及AI人才发展报告》均薪38万,招聘猛增6倍
- 04_mysql增删改操作
- 虚拟linux第一次启动网卡配置过程
- 小米公司在区块链领域的布局:小米WiFi链也开始种“米”了
- Python实现统计二叉树叶子结点个数
- This tag and its children can be replaced by one TextView/ and a compound drawable
- 别人都不知道的“好用”网站,让你的效率飞快
- tp-link 路由器iD登陆时,经常的发送请求失败,解决办法如下
- 弹箭三自由度弹道计算程序(c++ vs2017 )
- Dockerfile: max depth exceeded
- 韩天峰 - Swoole4-全新的PHP编程模式
- vivo手机系统打印服务器,原来vivo手机自带扫描功能,文件瞬间电子化!几千的扫描仪省下了...
- 计算机课外活动小结,课外活动总结
- 实现智能语音识别服务
- 威纶tk6070ik与台达变频器vdf-s485通讯程序 自己编写的威纶触摸屏与台达变频器的通讯
热门文章
- leetcode —— 1013. 将数组分成和相等的三个部分
- 吴恩达机器学习 —— 2.7 计算图
- 深入理解傅里叶变换的性质:实函数、卷积、相关、功率谱、频响函数
- ISSN和EAN原理及转换【转载】
- 从Ubuntu 14 04 LTS版升级到Ubuntu 16 04 LTS
- Golang笔记——tcp 编程
- python 水位_Leetcode 42. 接雨水 - python - 递归 查找分水岭
- css自动换行加前置_StudyNode -- CSS
- java响应式网页设计_基于HTML5的响应式网站的设计与实现(论文).docx
- centos更改默认python_CentOS系统python默认版本由python2改为python3