WEB开发网
开发学院软件开发VC 如何让一个打开的文档成为活动文档 阅读

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

 2010-05-25 20:35:59 来源:WEB开发网   
核心提示:提出问题:有一个树型控件,在其TVITEM的用户部分存储着一个文档指针,如何让一个打开的文档成为活动文档,当双击项目时,我想从打开的文档列表中激活文档,你就可以调用pFrame->MDIActivate来激活它,另外,所以对于给定的文档类(CDocument)指针,如何在MDI应用中激活这个指针?在回答这个问题之

提出问题:

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

Tags:如何 一个 打开

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接