首页/技术开发/内容

运用VC6.0完成窗口的任意分割

技术开发2023-12-19 阅读()
WS_VSCROLL);
    if (afxData.bWin4)
       dwCreateStyle &= ~WS_BORDER; // create with the same wnd-class as MDI-Frame (no erase bkgnd)
    if (!CreateEx(0, _afxWndMDIFrame, NULL, dwCreateStyle, 0, 0, 0, 0,pParentWnd->m_hWnd, (HMENU)nID, NULL))
      return FALSE; // create invisible

二、创建嵌套分割窗口
  2.1创建动态分割窗口
  动态分割窗口使用Create方法。下面的代码将创建2x2的窗格。
  m_wndSplitter.Create(this,2,2,CSize(100,100),pContext);
  但是动态创建的分割窗口的窗格数目不能超过2x2,而且对于所有的窗格,都必须共享同一个视图,所受的限制也比较多,因此我们不将动态创建作为重点。我们的主要精力放在静态分割窗口的创建上。
  2.2创建静态分割窗口
与动态创建相比,静态创建的代码要简单许多,而且可以最多创建16x16的窗格。不同的窗格我们可以使用CreateView填充不同的视图。
在这里我们将创建CuteFtp的窗口分割。CuteFtp的分割情况如下:

CCuteFTPView
CView2 CView3
CView4

  创建步骤:
  ▲ 在创建之前我们必须先用AppWizard生成单文档CuteFTP,生成的视类为 CCuteFTPView.同时在增加三个视类或者从视类继承而来的派生类CView2,CView3 CView4.
  ▲ 增加成员:
  在Cmainfrm.h中我们将增加下面的代码:
  CSplitterWnd wndSplitter1;
  CSplitterWnd wndSplitter2;
  ▲ 重载CMainFrame::OnCreateClient()函数:
  BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
  { //创建一个静态分栏窗口,分为三行一列
    if(m_wndSplitter1.CreateStatic(this,3,1)==NULL)
      return FALSE;
    //将CCuteFTPView连接到0行0列窗格上
    m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CCuteFTPView),CSize(100,100), pContext);
    m_wndSplitter1.CreateView(2,0,RUNTIME_CLASS(CView4),CSize(100,100),pContext); //将CView4连接到0行2列
    if(m_wndSplitter2.CreateStatic(&m_wndSplitter,1,2,WS_CHILD(北联网教程,专业提供视频软件下载)

第1页  第2页  第3页  第4页  第5页 

……

相关阅读