[MFC]文档字符串、HKEY_CLASSES_ROOT注册表、.reg注册表文件

本文详细介绍了MFC中文档字符串的作用,包括框架窗口标题、默认文档名等7个子字符串的含义。同时,文章讨论了HKEY_CLASSES_ROOT在设定文件默认图标和打开程序的注册表功能,以及.MFC程序如何使用.GetDocString获取文档字符串。此外,讲述了.reg文件用于管理注册表,以及MFC如何支持MDI程序的DDE执行功能。
摘要由CSDN通过智能技术生成

1. 文档字符串的定义:

    1) 也是LoadFrame可以加载的第四种资源(图标、菜单、加速键之外的第四种资源);

    2) 定义方式例如:

STRINGTABLE PRELOAD DISCARDABLE 
BEGIN
    IDR_MAINFRAME           "SdiSquares\n\nSdiSqu\nSdiSqu Files (*.sqr)\n.sqr\nSdiSquares.Document\nSdiSqu Document"
END
         i. 定义使用关键字STRINGTABLE;

         ii. 里面的那条字符串都要用一条资源ID来标识,就像菜单的菜单项一样,每一项都要用一个ID来标识;

    3) 其中的字符串是由换行符\n相互隔开的7个子字符串构成,如果哪一个字符串为空也必须用两个\n(中间什么字符都没有)包夹在一起,标识中间的字符串为空;

    4) 7个字符串的含义(从头到尾):

*1. 框架窗口标题栏中的标题,一般用来指示应用程序名,例如:Microsoft Word,中间可以带空格

*2. 分配给未命名的新创建文档的名字,如果该字符串为空将默认为"Untitled"

!!在创建或打开一个文档后程序标题栏会显示"文档名-程序名",程序名就是第一个子字符串,文档名可以是已存在的文档的名称也可以是默认的Untitled(即第2个子字符串);

*3. MDI文档类型过滤器,在SDI中用不到,可以为空;

*4. SDI文档类型过滤器,会在CFileDialog的文档过滤器列表中显示,例如:Doc Files(*.doc);

!!!5和6会在注册表中注册时起到作用,后面会具体讲解注册表的相关内容;

*5. 文档的默认扩展名(在用户没输入后缀的情况下自动添加),例如:.txt就是合法的,注意,一定要加.

*6. 注册表文档类型:也成为注册表ID;

!!!

*7. 文档类型描述:文档的属性选项卡中会显示出来的供人阅读的名字,可以比较长,可以包含空格,主要作用是简短地解释文档的类型,在注册表中是注册表ID对应的描述性字符串;


2. 使用GetDocString来获取文档字符串的各个子字符串:

    1) 函数原型:vritual BOOL CDocTemplate::GetDocString(CString& rString, enum DocStringIndex index) const;

    2) rString用于接受想获得的字符串;

    3) index使用枚举类型定义的索引值,它们都已CDocTemplate::作为前缀,这里按照子字符串的排列顺序给出:

windowTitle:标题

docName:默认的文档名

fileNewName:MDI文档类型过滤器

filterName:SDI文档类型过滤器

filterExt&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值