四、单文档分割窗口中,某分割区的多视的实现
第二种情况下,窗口的分割与标准方法的第3种类似,这里不再重复。下面 的函数用于切换某分割(第3种标准界面中,左上区域)区域中的视。
这里的实现方法是:先删除原来的视,然后在原分割区域创建一个新的视。
void CMainFrame::OnViewView1()
{
ChangeView(RUNTIME_CLASS(CviewView1));
ViewingView = ID_VIEW_VIEW1;
}
void CMainFrame::OnViewView2()
{
ChangeView(RUNTIME_CLASS(CviewView2));
ViewingView = ID_VIEW_VIEW2;
}
void CMainFrame::OnUpdateViewView1(CCmdUI* pCmdUI)
{
pCmdUI-〉SetCheck(ViewingView == ID_VIEW_VIEW1);
}
void CMainFrame::OnUpdateViewView2(CCmdUI* pCmdUI)
{
pCmdUI-〉SetCheck(ViewingView == ID_VIEW_VIEW2);
}
void CMainFrame::ChangeView(CRuntimeClass * pRTClass)
{
// 先删除原来的视
m_wndSplitter2.DeleteView(0,0);
// 创建新的视
CCreateContext Context;
Context.m_pNewViewClass = pRTClass; // 视类
Context.m_pCurrentDoc = GetActiveDocument(); // 与文档连接
m_wndSplitter2.CreateView(0,0, pRTClass,CSize(0,0),&Context);
CView * pView = (CView *)m_wndSplitter2.GetPane(0,0); // 获取分割区域
pView-〉ShowWindow(SW_SHOW);
pView-〉OnInitialUpdate();
SetActiveView(pView);
m_wndSplitter2.SetRowInfo(0, 300, 20); // 设置宽度
::SetWindowLong(pView-〉m_hWnd, GWL_ID, AFX_IDW_PANE_FIRST);
m_wndSplitter2.RecalcLayout();
} 
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
2/2 首页 上一页 1 2 |