subject_21168.htm

来自「一些关于vc的问答」· HTM 代码 · 共 12 行

HTM
12
字号
<p>
序号:21168 发表者:黄庆荣 发表日期:2002-11-14 12:31:52
<br>主题:如何使一个文档有多个视图
<br>内容:&nbsp;&nbsp;我想要做在同一个文档的情况下,创建多个视图,这些视图应该同时存在,用户可以自由切换,从不同角度表示数据
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:CDMA2000 回复日期:2002-11-14 12:50:05
<br>内容:BOOL CMainFrame::OnViewChange(UINT nCmdID)<BR>{<BR>CView* pViewAdd;<BR>CView* pViewRemove;<BR>CDocument* pDoc = GetActiveDocument();<BR>UINT nCmdID;<BR>nCmdID = LOWORD(GetCurrentMessage()-&gt;wParam);<BR>if((nCmdID == ID_VIEW_VIEW1) &amp;&amp; (m_currentView == 1))<BR>return;<BR>if((nCmdID == ID_VIEW_VIEW2) &amp;&amp; (m_currentView == 2))<BR>return;<BR>if (nCmdID == ID_VIEW_VIEW2)<BR>{<BR>if (m_pView2 == NULL)<BR>{<BR>m_pView1 = GetActiveView();<BR>m_pView2 = new CMyView2;<BR>m_pView2-&gt;Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,<BR>rectDefault, this, AFX_IDW_PANE_FIRST + 1, NULL);<BR>}<BR>pViewAdd = m_pView2;<BR>pViewRemove = m_pView1;<BR>m_currentView= 2;<BR>}<BR>else<BR>{<BR>pViewAdd = m_pView1;<BR>pViewRemove = m_pView2;<BR>m_currentView= 1;<BR>}<BR>// 将活动视的child id设置为AFX_IDW_PANE_FIRST<BR>// 将其它视设置为AFX_IDW_PANE_FIRST以外的值,<BR>// 这样当调用 CFrameWnd::RecalcLayout重新布局窗口时,<BR>// 才会得到正确的视<BR>int nSwitchChildID = pViewAdd-&gt;GetDlgCtrlID();<BR>pViewAdd-&gt;SetDlgCtrlID(AFX_IDW_PANE_FIRST);<BR>pViewRemove-&gt;SetDlgCtrlID(nSwitchChildID);<BR>// 显示活动视而隐藏非活动视<BR>pViewAdd-&gt;ShowWindow(SW_SHOW);<BR>pViewRemove-&gt;ShowWindow(SW_HIDE);<BR>// 将新的活动视连接到文档,并断开原来的视与文档的连接<BR>pDoc-&gt;AddView(pViewAdd);<BR>pDoc-&gt;RemoveView(pViewRemove);<BR>SetActiveView(pViewAdd);<BR>RecalcLayout();<BR>}<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?