VC文件关联小结

简介: 最近的工程中要用到了vc中关于文件关联的操作,费了不少周折,这里就简单做一个小结。 (1)使用EnableShellOpen自动完成注册表的注册信息 这种情况下,只需要在CWinApp子类的InitInstance函数中添加如下代码就行 // Enable DDE Execute...

最近的工程中要用到了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文件,内容类似上面的描述。双击执行,导入到自己机器的注册表中去即可。

目录
相关文章
|
JavaScript
新年倒计时动画网页特效源码
新年倒计时动画网页特效源码是一段基于JS实现的中国节日元旦2025年倒计时动画效果代码,利用此代码,可以实现任意节日的倒计时效果,欢迎对此代码感兴趣的朋友前来下载参考。
243 6
|
存储 数据挖掘 BI
数据仓库深度解析与实时数仓应用案例探析
随着数据量的不断增长和数据应用的广泛深入,数据治理和隐私保护将成为数据仓库建设的重要议题。企业需要建立完善的数据治理体系,确保数据的准确性、一致性和完整性;同时加强隐私保护机制建设,确保敏感数据的安全性和合规性。
1139 55
|
监控 安全 网络安全
.Lockbit3.0勒索病毒来袭:你的数据安全面临挑战
在数字化时代,网络安全威胁日益严峻,勒索病毒作为一类极具破坏性的恶意软件,正成为全球网络安全的重大挑战。Lockbit3.0勒索病毒凭借其高度模块化、隐蔽性强、传播速度快等特点,对个人用户、企业和国家的信息安全构成严重威胁。其高度模块化架构使其更具灵活性和难以检测性,增加了传统安全检测手段的难度。为应对这一挑战,我们需要加强安全意识、安装可靠的安全软件、定期备份数据并加强网络监控。如需数据恢复技术支持,请添加技术服务号(sjhf91)或关注“91数据恢复”。
263 0
|
机器学习/深度学习 人工智能 自然语言处理
AIGC技术革新:智能创造如何重塑艺术与设计行业
AIGC技术,人工智能生成内容,正引领艺术与设计行业的变革。借助深度学习和自然语言处理等技术,AIGC能自动生成文本、图像等内容,丰富创作手段并提供创新机会。在艺术领域,它模拟各种风格作品,助力高效创作;在设计领域,它根据用户需求生成设计方案,提升个性化选择。AIGC打破了传统界限,提高了创作效率,并满足了用户的个性化需求。未来,随着技术进步和应用场景拓展,AIGC将在虚拟现实等领域的结合中,为艺术与设计带来更沉浸式、交互式的体验,重塑行业未来。【6月更文挑战第4天】
1328 1
|
存储 SQL 关系型数据库
认真学习MySQL中的那些日志文件-通用查询日志&错误日志
认真学习MySQL中的那些日志文件-通用查询日志&错误日志
1101 1
|
安全 调度 vr&ar
考虑设备动作损耗的配电网分布式电压无功优化(Matlab代码实现)
考虑设备动作损耗的配电网分布式电压无功优化(Matlab代码实现)
282 0
|
运维 Kubernetes 安全
云原生架构下的数字身份治理实践技术分享
在云上自动化发布实践方面,采用云下开发测试,云上验收发布模式进行产品迭代的方式。产品发布过程中全面拥抱DevOps,并融入零信任安全理念建立DevSecOps开发模式。利用自研的独立pki服务,可以控制每一个用户的后台访问权限时间。而且在整个身份安全保护开发运维的过程中,以及各种工具的使用上,派拉将安全一直贯穿整个研发体系。
435 0
云原生架构下的数字身份治理实践技术分享
缺少了一个必选参数VpcId
缺少了一个必选参数VpcId
215 3
|
Java API
Java:SpringBoot获取所有接口的路由映射关系
Java:SpringBoot获取所有接口的路由映射关系
841 0
|
小程序 API 数据库
小程序中的分页查询
小程序中的分页查询
小程序中的分页查询