如何分屏幕(How to split the Screen)

********************************************************************/
/* */
/* Function name : OnCreateClient */
/* Description : Create some splitter windows. */
/* */
/********************************************************************/
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
// create splitter window
if (!m_wndSplitter.CreateStatic(this, 2, 1))
return FALSE;

// add the second splitter pane - a message view in raw 1
if (!m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CTraceView), CSize(0, 0), pContext))
return FALSE;

// split the first splitter pane
if (!m_wndSplitter2.CreateStatic(&m_wndSplitter, 1, 2, WS_CHILD|WS_VISIBLE|WS_BORDER, m_wndSplitter.IdFromRowCol(0, 0)))
{
return FALSE;
};

// add default view to the first pane
if (!m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CFtpTreeView), CSize(100, 100), pContext))
{
return FALSE;
};

// add list view to the second pane
if (!m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CFtpListView), CSize(100, 100), pContext))
{
return FALSE;
};

// remember CTraceView pointer
CWnd* pWnd = m_wndSplitter.GetPane(1, 0);
m_pTraceView = DYNAMIC_DOWNCAST(CTraceView, pWnd);

CRect rc;
GetClientRect(&rc);

m_wndSplitter.SetRowInfo(0, rc.Height()*3/4, 50);
m_wndSplitter.SetRowInfo(1, rc.Height()/4, 50);

m_wndSplitter2.SetColumnInfo(0, 200, 10);
m_wndSplitter2.SetActivePane(0, 0);

m_bInitialized = TRUE;

// Initialize Tree Control here
// PopulateTree();

m_bShowTrace = AfxGetApp()->GetProfileInt("Settings", "ShowTrace", 1);
if (!m_bShowTrace)
m_wndSplitter.HideRow(1);

// show connect dialog
if (AfxGetApp()->GetProfileInt("Settings", "ShowConnectionDlg", 1))
PostMessage(WM_COMMAND, ID_FILE_CONNECT);

// save view style
int nViewStyle = AfxGetApp()->GetProfileInt("Settings", "ViewStyle", ID_VIEW_LARGEICON);
OnViewStyle(nViewStyle);

return TRUE;
}


原文地址:https://www.cnblogs.com/confach/p/112093.html