📄 chap8_4.htm
字号:
<html><head><title>8.4访问当前活动视图和活动文档 </title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="GENERATOR" content="Microsoft FrontPage 3.0"><link rel="stylesheet" href="../../../cpcw.css"></head><body link="#3973DE" alink="#3973DE" background="../../bg.gif"><div align="center"><center> <table width="85%" border="0"> <tr bgcolor="#FFFFFF"> <td> <div align="center"> <center> </center> </div> <p align="CENTER"><b><font color="red" face="Times New Roman">8.4</font><font color="red">访问当前活动视图和活动文档 </font></b><font color="#3973DE" size="4"> </font></p> <p> 对于SDI程序,主框架窗口就是文档框窗,可以采用以下方法取得当前文档和视图:</p> <p> 取得活动文档:</p> <p>CMyDocument* pDoc;</p> <p>pDoc=(CMyDocument*)((CFrameWnd*)AfxGetApp()->m_pMainWnd)</p> <p>->GetActiveDocument();</p> <p>或</p> <p> pDoc=(CMyDocument*)((CFrameWnd*)AfxGetMainWnd());</p> <p> 这两者是等效的。</p> <p> 取得活动视图:</p> <p>CMyView* pView;</p> <p>pView=(CMyView*)((CFrameWnd*)AfxGetApp()->m_pMainWnd)->GetActiveView();</p> <p>对于MDI程序,由于子窗口才是文档框窗,因此首先要用GetActiveFrame()取得活动子框架窗口,然后通过该子窗口获取活动文档和视图:</p> <p>CMDIChildWnd* pChild=(CMDIChildWnd*)((CFrameWnd*)AfxGetApp()->m_pMainWnd)->GetActiveFrame();</p> <p>取得活动文档:</p> <p>CMyDocument* pDoc=pChild->GetActiveDocument();</p> <p>CMyView* pView=(CMyView*)pChild->GetActiveView();</p> <p>可以把上述函数片段做成静态成员函数,比如:</p> <p>static CMyDocument::GetCurrentDoc()</p> <p>{</p> <p>CMDIChildWnd* pChild=(CMDIChildWnd*)((CFrameWnd*)AfxGetApp()- >m_pMainWnd)->GetActiveFrame();</p> <p>CMyDocument* pDoc=pChild->GetActiveDocument();</p> <p>}</p> <p>这样就可以通过以下方式取得活动文档(或视图):</p> <p> CMyDocument::GetCurrentDoc();</p> <p> <b></b><font color="#3973DE">注:静态成员函数调用时不需要一个具体的对象与之相关联。</font></p> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" width="615"> <tr> <td><a href="chap8_3.htm">上一页</a></td> <td> <p align="right"><a href="chap8_5.htm">下一页</a> </td> </tr> </table> </td> </tr> </table> </center></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -