WTL提供了3個類用來分隔視窗:CSplitterImpl、CSplitterWindowImpl、CSplitterWindowT。CSplitterImpl類實現了最主要的分割視窗所需要的函數。CSplitterWindowImpl繼承了CSplitterImpl類,它實現了一個什麼都不做的OnEraseBackground函數,還實現了一個OnSize函數,該函數可以自動調整分割視窗的客戶區大小。通常情況下,我們可以直接使用CSplitterWindowImpl類作為我們視窗的父類,如果這兩個函數的行為達不到我們的要求,我們可以改寫繼承自CSplitterImpl類的訊息處理函數。CSplitterWindowT類繼承了CSplitterWindowImpl類,並註冊視窗類別的名稱為—“WTL_SplitterWindow”,還有就是提供了兩個類型定義:typedef CSplitterWindowT<true> CSplitterWindow;//垂直分割typedef CSplitterWindowT<false> CHorSplitterWindow;// 水平分割 下面我們使用CSplitterWindow類型來建立垂直分割視窗,然後左邊窗格為TreeView,右邊為普通的View. 在架構視窗中定義三個成員變數:CSplitterWindow m_splitter;CLeftTreeView m_treeView; CRightView m_rightView; 在架構視窗的OnCreate函數中,添加如下代碼:///////////////////// const DWORD dwSplitStyle = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; const DWORD dwSplitExStyle = WS_EX_CLIENTEDGE; m_hWndClient=m_splitter.Create(m_hWnd,rcDefault,NULL,dwSplitStyle,dwSplitExStyle); // Create a treeview based on m_splitter m_treeView.Create ( m_splitter, rcDefault ); // Create a view based on m_splitter m_rightView.Create( m_splitter,rcDefault); // set the left and right view m_splitter.SetSplitterPanes(m_treeView,m_rightView); UpdateLayout(); m_splitter.SetSplitterPos(200); //////////////// 關於CSplitterWindow的具體函數的用法,建議參考以下兩篇文章:http://www.yegaa.com/search/ShowRss.aspx?id=2092http://dev.yesky.com/SoftChannel/72342371928702976/20050306/1918488_2.shtml 一切是如此的簡單和物件導向。