OnOpenDocument指定打开文档的默认类型

来源:互联网 发布:ubuntu如何切换输入法 编辑:程序博客网 时间:2024/06/05 04:26

IDR_MAINFRAME字符串资源中包含7个子串,分别以\n结束,即如下格式:
<windowTitle>\n<docName>\n<fileNewName>\n<filterName>\n<filterExt>\n<regFileTypeId>\n<regFileTypeName>\n
(1)CDocTemplate::windowTitle,主窗口标题栏上的字符串,MDI程序不需要指定,将以IDR_MAINFRAME字符串为默认值。
(2)CDocTemplate::docName,缺省文档的名称。如果没有指定,缺省文档的名称是无标题。
(3)CDocTemplate::fileNewName,文档类型的名称。如果应用程序支持多种类型的文档,此字符串将显示在"File/New"对话框中。如果没有指定,就不能够在"File/New"对话框处理这种文件。
(4)CDocTemplate::filterName,文档类型的描述和一个适用于此类型的通配符过滤器。这个字符串将出现在“File/Open”对话框中的文件类型列表框中。要和CDocTemplate::filterExt一起使用。
(5)CDocTemplate::filterExt,文档的扩展名。如果没有指定,就不能够在“File/Open”对话框中处理这种文档。要和CDocTemplate::filterName一起使用。
(6)CDocTemplate::regFileTypeId,如果你以::RegisterShellFileTypes向系统的注册表注册文件类型,此值会出现在HEY_CLASSES_ROOT之下成为其子项,并仅供Windows内部使用。如果没有指定,这种文件类型就无法注册。
(7)CDocTemplate::regFileTypeName,这也是存储在注册表中的文件类型名称。它会显示于程序中用以访问注册表的对话框内。

要指定默认打开文档类型为位图文件,可以按如下设置。不过IDR_MAINFRAME只能实现一种文件类型的选择。


如果要实现多类型保存和多类型新建需要重新定义ID_FILE_OPEN和ID_FILE_SAVE的处理函数。

设置多个过虑器
 在CFileDiag的构造函数的第5个参数加入过虑串,格式如下.
 LPCTSTR strFilter=TEXT("文本文件(*.txt)|*.txt|图片文件|*.bmp;*.jpg;*.gif;*.tif|所有文件(*.*)|*.*||");//最后要以"||"结束.
调用的时候
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter);
dlg.DoModal();


原创粉丝点击