建立拆分窗口

         在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;

}


 

你可能感兴趣的:(建立拆分窗口)