/* */
/* 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;
}
这段代码主要实现了视图分割和初始化操作。包括创建分割窗口、添加不同视图(如消息视图、树视图、列表视图),设置窗口行列信息,初始化树控件,根据配置隐藏行、显示连接对话框,保存视图样式等。
383

被折叠的 条评论
为什么被折叠?



