MFC单文档自定义扩展名及添加图标报Assertion错误
2014-12-02 16:15
232 查看
忽然无聊的想给自己写的程序保存的文件使用自己的名字简写作为后缀,于是有了下文。
IDR_MAINFRAME格式介绍
IDR_MAINFRAME字符串资源中包含7个子串,分别以/n结束,即如下格式:<windowTitle>/n<docName>/n<fileNewName>/n<filterName>/n<filterExt>/n<regFileTypeId>/n<regFileTypeName>/n
CDocTemplate::windowTitle,主窗口标题栏上的字符串,MDI程序不需要指定,将以IDR_MAINFRAME字符串为默认值。
CDocTemplate::docName,缺省文档的名称。如果没有指定,缺省文档的名称是无标题。
CDocTemplate::filterName,文档类型的描述和一个适用于此类型的通配符过滤器。这个字符串将出现在“File/Open”对话框中的文件类型列表框中。要和CDocTemplate::filterExt一起使用。
CDocTemplate::filterExt,文档的扩展名。如果没有指定,就不能够在“File/Open”对话框中处理这种文档。要和CDocTemplate::filterName一起使用。
CDocTemplate::regFileTypeId,如果你以::RegisterShellFileTypes向系统的注册表注册文件类型,此值会出现在HEY_CLASSES_ROOT之下成为其子项,并仅供Windows内部使用。如果没有指定,这种文件类型就无法注册。
CDocTemplate::regFileTypeName,这也是存储在注册表中的文件类型名称。它会显示于程序中用以访问注册表的对话框内。
单文档自定义保存文件名
在新建项目时,其中有一步会有advanced选项,可在里面设置扩展名。
如果项目已经建立,而我们又是使用系统自带的文件保存,则可以在
资源视图->
String Table->
String Table,找到ID为IDR_MAINFRAME项进行修改。在第三个\n和第四个\n后输入你需要的过滤符。
如:
CADProject\n\nCADProject\ntxt\n.txt\nCADProject.Document\nCADProject.Document(其中CADProject是项目名称,扩展名txt)
添加多种扩展名.如添加txt和ini格式:
CADProject\n\nCADProject\nFile(*.txt;*.ini)\n.txt;.ini\nCADProject.Document\nCADProject.Document。【注】filterExt使用分号";"隔开,分号后不带空格
参考1
参考2
参考3
修改ToolBar图标导致DEBUG ASSERTION错误
由于toolbar上的图标是通过复制粘贴的,于是在MainFrame中:if (CMFCToolBar::GetUserImages() == NULL) { // load user-defined toolbar images if (m_UserImages.Load(_T(".\\UserImages.bmp"))) { CMFCToolBar::SetUserImages(&m_UserImages); } }
出现debug assertion failed错误,解决办法,修改为:
if (CMFCToolBar::GetUserImages() == NULL) { // load user-defined toolbar images if (m_UserImages.Load(_T(".\\UserImages.bmp"))) { m_UserImages.SetImageSize(CSize(16, 16), FALSE); CMFCToolBar::SetUserImages(&m_UserImages); } }
具体原因:
参考4
参考5
相关文章推荐
- MFC 单文档自定义exe程序左上角图标
- MFC:“Debug Assertion Failed!” ——自动生成的单文档程序项目编译运行就有错误
- MFC:“Debug Assertion Failed!” ——自动生成的单文档程序项目编译运行就有错误
- MFC如何在自定义对话框中添加系统图标?
- “Visual Studio 2008 + IE8下,为MFC工程对话框资源添加类时发生错误”问题的解决
- 1、 添加桌面上快捷图标(我的电脑、我的文档、IE浏览器、网上邻居)
- Event Handler的开发与部署--扩展练习:上传文档后,指定用户,添加发送邮件通知操作
- 如何添加自定义系统菜单 - C++ & MFC
- 如何在浏览器地址栏前添加自定义的小图标?
- 解决导出的MFC扩展动态库在调用时出现Debug Assertion Failed错误的问题
- J2ME添加自定义图标
- MFC限制鼠标区域、画橡皮条线、任务栏显示图标、核对标记、文档背景色(二)
- MFC添加和使用自定义消息
- MFC 添加系统栏图标
- OpenCms templateTwo扩展系列之——添加自定义样式导航
- moss 自定义文档库文档图标
- ASP.NET自定义错误处理页面的添加
- 为MFC单文档程序添加HTML帮助支持
- MOSS自定义文档库文档图标
- 在MFC中添加用户自定义消息【转载】