当我们在MFC单文档工程创建完成后,我们可以在其资源视图的MENU和String Table文件夹下都发现有IDR_MAINFRAME的ID号,说明一个资源ID可以标识多种资源;目前可以代表的资源有字符串资源、菜单资源;这里主要说明下IDR_MAINFRAME中各个子串的含义;
我们创建的工程名是DocTemplate,在默认情况下,IDR_MAINFRAME所代表的字符串内容如下:
字符子串含义
这个字符串一个有7个子串,每个子串都有其特殊的含义,这7个字符串与文档模板类(CdocTemplate)的成员函数GetDocString的第二个参数的可能的取值一一对应,该函数声明如下:
virtual BOOL GetDocString(CString& rString, enum DocStringIndex index)const;
返回值:如果找到指定的子串,则返回非零值,否则为0。
参数:
rString 函数返回时,包含字符串的CString对象的一个参考。
index 描述文档模板的字符串的子串索引,可取下列值之一:
· CDocTemplate::WindowTitle (字符串1)
窗口标题条上出现的名字(如:“Microsoft Excel”),只有在SDI应用的文档模板中出现。
· CDocTemplate::DocName (字符串2)
默认的文档名称(如:“Sheet”),没有指定就是无标题;
· CDocTemplate::FileNewName (字符串3)
文档类型名字。
· CDocTemplate::FilterName (字符串4)
与文档类型匹配的文档类型各过滤器的描述,出现在File/Open对话框中的文件类型列表;
需要和CDocTemplate::FilterExt一起使用;
· CDocTemplate::FilterExt (字符串5)
文档类型的扩展名(如:“.xls”)。如果未指定,则显示所有的文件类型。
· CDocTemplate::RegFileTypeID(字符串6)
保存在Windows 的注册数据库中的文档类型的标识。该字符串只用于模板使用(如:“ExcelWorkSheet”)。
· CDocTemplate::RegFileTypeName(字符串7)
注册库中保存的文档类型名称。在访问注册库的应用的对话框中会得到显示(如:“Microsoft Excel WorkSheet”)。
更加详细的描述可参见msdn;
实例一
我们修改默认的字符串资源内容,添加字符串4和字符串5的内容,如下:
DocTemplate\n\nDocTemplate\nOpenFile("*.txt")\n.txt\nDocTemplate.Document\nDocTemplate.Document
效果:
实例二
我们将字符资源子串2内容改为DocName,运行效果如下:
说明我们也可以利用这个进行简单的窗口定制化修改,可以配合这篇博文[修改窗口光标、图标、背景等外观的两种方法]介绍的进行定制应用程序窗口;