当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 如何让一个打开的文档成为活动文档

VC++
使用免费界面换肤软件 USkin
Cell插件在J2EE系统中的应用
采用MFC编制MVC模式之球体演示程序
托管资源全攻略
使用 MFC 编写打印程序
根据所选择的 TrueType 字体生成点阵数据
让你的软件界面更漂亮(四):不完美之菜单
VC界面的实现
让你的软件界面更漂亮(三)
分割窗口后如何限制分割条的移动范围
关于 CFileDialog 对话框多选功能的一个问题
让你的软件界面更漂亮(二)
对话框模板,RegexTest
让你的软件界面更漂亮(一)
利用窗口子类化隐藏系统图标
KVIP考勤系统
类似于FlashGet的悬浮框的制作
计算MDI子窗口数,仅显示文件夹的打开对话框
智能ABC窗口的实现
在打开文件对话框上实现图象预览

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 48 ::
收藏到网摘: n/a

如何让一个打开的文档成为活动文档
赵湘宁
提出问题:

    有一个树型控件,在其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。