`
testcs_dn
  • 浏览: 113884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

VC文件关联小结

 
阅读更多

最近的工程中要用到了vc中关于文件关联的操作,费了不少周折,这里就简单做一个小结。

(1)使用EnableShellOpen自动完成注册表的注册信息

这种情况下,只需要在CWinApp子类的InitInstance函数中添加如下代码就行

// Enable DDE Execute open
EnableShellOpen();
RegisterShellFileTypes(TRUE);

通常情况下,也有加上这句的必要

// Enable drag/drop open
m_pMainWnd->DragAcceptFiles();

下面以MDI为例,说明几个需要注意的地方:

一、需要修改string table中的IDR_FFTYPE值,来定义默认的文档类型,如

/nFf/nFf/nFf 文件 (*.ff)/n.ff/nFf.Document/nFf Document

其中第三个参数是在打开/保存对话框中文件类型显示的提示信息,第四个参数是你自定义的文件类型的后缀名称。

二、也可以在程序生成向导的第四步中定义你的文档类型,而不需要再进行上面“一”的操作。

三、不同的工程最好是定义不同的自定义文件类型,否则同一个文件类型在注册表中可能会产生数据混乱的现象,从而可能导致程序的不正常关联。

四、若要自定义自己的关联程序的图标,第一步需要将自定义的ico文件覆盖掉res文件夹下默认的IDR_FFTYPE对应的资源文件;第二步,删除工程目录下的aps文件,清空二进制备份,重新载入工程即可。

(2)编辑一个注册表文件来实现关联

REGEDIT
; This .REG file may be used by your SETUP program.
; If a SETUP program is not available, the entries below will be
; registered in your InitInstance automatically with a call to
; CWinApp::RegisterShellFileTypes and COleObjectFactory::UpdateRegistryAll.

HKEY_CLASSES_ROOT/.ff = Ff.Document
HKEY_CLASSES_ROOT/SingleInstMDI.Document/shell/open/command = ff.EXE %1
HKEY_CLASSES_ROOT/SingleInstMDI.Document/shell/open/ddeexec = [open("%1")]
HKEY_CLASSES_ROOT/SingleInstMDI.Document/shell/open/ddeexec/application = ff
; note: the application is optional
; (it defaults to the app name in "command")

HKEY_CLASSES_ROOT/Ff.Document = Ff Document

自定义一个reg文件,内容类似上面的描述。双击执行,导入到自己机器的注册表中去即可。

分享到:
评论

相关推荐

    用VC编制DLL程序的方法小结

    在VC 6.0中,开发DLL(动态链接库)是一项关键任务,因为DLLs能够实现代码重用和模块化。MFC(Microsoft Foundation Classes)框架提供了三种主要类型的DLL:常规静态DLL、常规动态DLL和扩展DLL。 1. **常规静态DLL...

    VC 动态改变位图

    在VC++环境中,动态改变位图是指在程序运行过程中,根据需要实时更新显示的位图图像。这在很多应用程序中都是必要的,比如游戏...参考"MFC的picture控件动静态加载位图小结.txt"文档,可以获得更深入的技巧和最佳实践。

    vc++ 应用源码包_1

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_2

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_3

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_6

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_5

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    学习 WSH 的理由小结

    - 这里作者强调了个人兴趣在学习编程中的重要性,并指出语言的选择直接关联到开发方式和未来的就业方向,建议人们应该根据自己的长远规划来选择编程语言。 3. **WSH的学习价值**: - 作者分析了WSH对于学习编程...

    MFC教程入门知识全集

    **1.8 小结** 这部分介绍了C++的基础知识,包括类的定义、使用、继承、多态等内容,为后续深入学习MFC打下坚实的基础。 #### 二、Windows程序内部运行原理 **2.1 Windows应用程序,操作系统,计算机硬件之间的...

    VC++的应用程序框架

    ### 小结 通过上述介绍可以看出,MFC 应用程序框架通过应用类、主框架窗口类、文档类、视图类以及文档模板类等多个核心组件紧密协作,形成了一个高度集成的应用程序模型。这种模型不仅方便了应用程序的开发,同时也...

    MFC实例基础教程 (快速入门)

    **1.8 小结** - 总结本章所学的关键概念和技术。 #### 二、Windows程序内部运行原理 **2.1 Windows应用程序,操作系统,计算机硬件之间的相互关系** - **2.1.1 关于API** - API(应用程序编程接口)是操作...

    游戏编程指南

    - **1.7.4 小结**: 指针、数组和字符串是C++中非常重要的概念,掌握它们对于编写高效稳定的游戏代码至关重要。 **1.8 多文件程序的结构** - **多文件程序**: 大型项目通常会被拆分成多个源文件。合理地组织这些...

    C#微软培训资料

    1.4 小 结 .11 第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20...

    PT80-NEAT开发指南v1.1

    NEAT 开 发 指南 文档 适用于 PT80 系列 移动数据终端 版本记录 版本号 版本描述 发布日期 V 1.0 初始版本。 2012-04-12 V1.1 修改前三章内容 2012-09-25 目录 第一章 关于本手册.....................................

    Windows网络编程技术

    - **6.8 小结**: 总结地址家族和名字解析的核心概念。 **七、Winsock基础** - **7.1 Winsock的初始化**: 如何初始化Winsock环境。 - **7.2 错误检查和控制**: 错误处理机制和控制选项。 - **7.3 面向连接的协议** ...

Global site tag (gtag.js) - Google Analytics