AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VC编程

单文档与多视的实现方法

51自学网 2015-08-30 http://www.wanshiok.com

 

  四、单文档分割窗口中,某分割区的多视的实现


  第二种情况下,窗口的分割与标准方法的第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不保证资料的完整性。

上一篇:做一个可编辑的表格控件  下一篇:显示作为窗口或对话框背景的位图