建立拆分窗口

来源:互联网 发布:java包有什么用 编辑:程序博客网 时间:2024/04/30 14:40

         在MFC导航中 选择了拆分窗口,但是运行时,还是单一窗口,这需要我们手动的重载函数OnCreateClient(LPCRETESTRUCT,CCreateContext * pContext)来实现拆分,当然前提已经建立了基于CView的视图 本例中为(CPathView),实例如下:


首先在MainFrm.h中定义变量:

CSplitterWnd m_wndSplitter;

然后,重载OnCreateClient函数

 

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,CCreateContext* pContext){/*return m_wndSplitter.Create(this,   //  选择拆分窗口后,MFC自动建立的语句,将其注释掉2, 2,               // TODO: 调整行数和列数CSize(10, 10),      // TODO: 调整最小窗格大小pContext);*/m_wndSplitter.CreateStatic(this,1,2);  //一行2列         BOOL bResult=FALSE;    UINT nWidth;    nWidth = ::GetSystemMetrics(SM_CXSCREEN);bResult=m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CPathView),CSize(nWidth/5,0),pContext);   if (!bResult)return FALSE;bResult=m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CPathView),CSize(0,0),pContext); // 确定窗口(0,0)的CSize后,窗口(0,1)的CSize就不起作用了if (!bResult)return FALSE;return TRUE;}


 

原创粉丝点击