研究codeproject上的一个分割视图,结果。。。。
本帖最后由 VisualEleven 于 2012-12-24 13:55:39 编辑
这代码竟然可以在CSplitterWindowTutorialView这个视图类上用CSplitterWindowTutorialView
// 这里内部构造了一个view的对象
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CSplitterWindowTutorialDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CSplitterWindowTutorialView));
AddDocTemplate(pDocTemplate)
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
//calculate client size
CRect cr;
GetWindowRect( &cr );
// Create the main splitter with 1 row and 2 columns
if ( !m_mainSplitter.CreateStatic( this, 1, 2 ) )
{
MessageBox( "Error setting up m_mainSplitter", "ERROR", MB_OK | MB_ICONERROR );
return FALSE;
}
// The views for each pane must be created
if ( !m_mainSplitter.CreateView( 0, 0, RUNTIME_CLASS(CSplitterWindowTutorialView),
CSize(cr.Width()/2, cr.Height()), pContext ) )
{
MessageBox( "Error setting up splitter view", "ERROR", MB_OK | MB_ICONERROR );
return FALSE;
}
if ( !m_mainSplitter.CreateView( 0, 1, RUNTIME_CLASS(CSplitterWindowTutorialView),
CSize(cr.Width()/2, cr.Height()), pContext ) )
{
MessageBox( "Error setting up splitter view", "ERROR", MB_OK | MB_ICONERROR );
return FALSE;
}
//change flag to show splitter created
m_bInitSplitter = true;
//return TRUE instead of the parent method since that would
//not show our window
return TRUE;
}