如何让一个打开的文档成为活动文档

提出问题:

有一个树型控件,在其TVITEM的用户部分存储着一个文档指针。当双击项目时,我想从打开的文档列表中激活文档。所以对于给定的文档类(CDocument)指针,如何在MDI应用中激活这个指针?

在回答这个问题之前需要纠正的是:文档是不能被激活的,只有窗口能被激活。在提出的问题中隐含着这样一种假设,就是每一个文档只有一个视,MDI子框架与这个视关联。因此要激活文档也就是盯住几个指针。从文档可以获得它的视。

POSITION pos = pDoc->GetFirstViewPosition();

CView* pView = pDoc->GetNextView(pos);

pView是与文档关联的第一个视。这里假设这个文档有一个而且只有一个视。如果这个文档有一个以上关联的视(例如,在MDI应用中对相同的文档用户打开了两个窗口),你必须决定激活哪一个。最容易的办法是首先使用列表中第一个视。一旦你有了这个视,你必须获得包含它的MDI子框架。

CFrameWnd *pFrame = pView->GetParentFrame();

GetParentFrame得到给定窗口的第一个父框架—第一个父窗口是CFrameWnd。假设应用是MDI,那么包含子框架的视应该为CMDIChildWnd。一旦有了MDI子框架,你就可以调用pFrame->MDIActivate来激活它。另外,你还必须将指针强行转换为CMDIChildWnd。

时间: 2024-09-23 07:41:16

如何让一个打开的文档成为活动文档的相关文章

如何在Web页面上直接打开、编辑、创建Office文档_javascript技巧

如何在Web页面上直接打开.编辑.创建Office文档  有朋友询问如何在Web页面上做到像SharePoint中的效果一样,能直接激活客户端的Word来打开.doc文件,而不是类似直接点击.doc文档链接时Word在IE中被打开那样.想想这个问题应该很多人都会感兴趣,所以干脆写一篇blog来大致描述一下方法. 在安装Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于"Program Files\Microsoft Office\OFFICE11\owssupp.d

水晶报表错误“不支持的操作。无法在 C++ 堆栈中打开由 JRC 引擎处理的文档。”

问题描述 水晶报表错误"不支持的操作.无法在 C++ 堆栈中打开由 JRC 引擎处理的文档." 使用环境是 VS2012,项目属性WEB页签中,服务器使用的是"使用Visual Studio开发服务器",在aspx页面中点在浏览器中查看就会出现错误: 不支持的操作.无法在 C++ 堆栈中打开由 JRC 引擎处理的文档. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: S

(分已用完)一个WORD文档(文档1),复制到其他目录(文档2),现在修改文档1里的内容,比如增加几行字或删了几个字,现在我想文档2与文档1的内容一致,除了复制还有其它什么办法,就是说能不能通过文件对比什么的,相应的程序自动修改文档2的内容。

问题描述 我想问有没有这样的方法,大家可以说说,不一定要你做过 解决方案 解决方案二:现在我想文档2与文档1?问题不完全是不是要问关于保证两个文档资料始终一样用fileNotification监控文档1,如果文档1有变化,就再COPY文档1去文档2解决方案三:这两个文档不在一起,可能一个在FTP上,一个在本地,还不能用拷贝,就是通过查看那里修改了就相应的也可以更改第二个文件.解决方案四:这有点麻烦了.我知道到是可以根据文本的内容运算出一个64bit的Base64代号(我有个项目是比较图片的,就是

做一个简单的VC++的mfc单文档应用程序

问题描述 做一个简单的VC++的mfc单文档应用程序 帮忙做一个基于VC++6.0的mfc单文档应用程序(绘图),有菜单栏工具栏和快捷菜单,用到分割窗口,组合框,文档序列化 解决方案 google Scribble 示例:MDI 绘图应用程序 解决方案二: 就你的需求,不要写一行程序,用向导生成,勾选切分视图和从CFormView继承,放上组合框就好了.文档序列化是默认支持的. 解决方案三: 解决方案四: 如果你要画图,可以直接下载msdn里面切分视图画图的那个例子,然后加上一个controlb

【MOS】零宕机迁移ASM磁盘组到另一个SAN/磁盘阵列/DAS的准确步骤 (文档 ID 1946664.1)

[MOS]零宕机时间迁移 ASM 磁盘组到另一个 SAN/磁盘阵列/DAS 的准确步骤 (文档 ID 1946664.1) 文档内容 目标   提问,获得帮助,并分享您对于这篇文档的经验. 解决方案 参考 适用于: Oracle Database - Enterprise Edition - 版本 10.2.0.1 到 11.2.0.4 [发行版 10.2 到 11.2]本文档所含信息适用于所有平台 目标 本文详述了在零宕机时间的前提下将 ASM 磁盘组从一个存储设备(SAN/磁盘阵列/DAS等

c# autocad开发中 打开dwg文件后怎么设为当前活动文档

问题描述 DocumentacDoc=Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.Open("d:\new.dwg");//打开文档Documentdoc=acadApp.DocumentManager.MdiActiveDocument;//得到当前文档为什么得到当前的文档不为活动文档,怎么将其设为活动文档?? 解决方案

Word文档与WPS文档的相互转换技巧

在实际应用中,有人经常为Word文档和WPS文档不能相互转换而烦恼.笔者结合自身应用实际总结出以下方法,希望能给你一些帮助. Word文档转为WPS文档 在WPS的安装盘中,有一个不引人注目的文件叫做Word2wps.exe,这是一个自解压文件,双击它就可安装.然后重新启动计算机,打开WPS,选择"文件→打开",在"打开类型"中可以找到DOC文档,这样就可以打开Word的文档了(支持Word97与Word2000). WPS文档转为Word文档 无独有偶,在Offi

将word文档转换为pdf文档方法图解

  pdf文档相对word文档有很多好处,比如跨平台,阅读效果好等.但如何将word文档转换为pdf文档呢?方法有很多,如果你经常需要将word文档转换为pdf,那么可以看看哦~ 工具/原料 AdobeAcrobat9 Microsoft Office Word 方法/步骤 1.首先安装AdobeAcrobat9这款软件,该软件带有word等程序的转换插件. 安装过程中会提示你关闭word文档,否则需要重启后安装. 2.AdobeAcrobat9安装完成后,打开一个word文档.可以看到工具栏多

怎样在Word主控文档中插入子文档

  除在主控文档中设置子文档外,用户也可以将普通的Word文档转换成子文档,并插入到主控文档中,具体操作如下. 步骤1:在主控文档中,将插入点置于要插入子文档的位置,单击"主控文档"组中的"插入"按钮如图1所示. 步骤2:打开"插入子文档"对话框,选择要插入的文档,单击"打开"按钮,文档被作为一个子文档插入到主控文档中,如图2所示. 知识库:如果要断开子文档与主控文档之间的链接,使其成为主控文档中的内容,可在选中子文档内容后,