好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

在WTL中分割窗体

在WTL中分割窗体

1.在main source file (有_Module定义的那个cpp)中加入:
//add
#include <atlmisc.h>
#include <atlctrlx.h>

2.在MainFrm.h中加入:
#include <atlsplit.h>

3.在类CMainFrame中加入成员变量:
 CHorSplitterWindow m_wndHorzSplit;
 CSplitterWindow m_wndVertSplit;

4.在CMainFrame的OnCreate中:

 const DWORD dwSplitStyle = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
 const DWORD dwSplitExStyle = WS_EX_CLIENTEDGE;

 m_wndHorzSplit.Create ( *this , rcDefault, NULL,
      dwSplitStyle, dwSplitExStyle );
 m_wndVertSplit.Create ( m_wndHorzSplit , rcDefault, NULL,
      dwSplitStyle, dwSplitExStyle );

 m_wndHorzSplit.SetSplitterPane ( SPLIT_PANE_BOTTOM, m_wndVertSplit );

 m_view.Create( m_wndVertSplit , rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS, WS_EX_CLIENTEDGE);

 m_hWndClient = m_wndHorzSplit;
 UpdateLayout();
 m_wndHorzSplit.SetSplitterPos(64);
 m_wndVertSplit.SetSplitterPos(200);
 m_wndVertSplit.SetSplitterPanes ( m_view, NULL );

备注:
(1)注意绿色的那行,需要将原来OnCreate里的 m_hWndClient =  m_view.Create(...) 注释掉
(2)注意红色的部分,要改一下。

查看更多关于在WTL中分割窗体的详细内容...

  阅读:35次

上一篇: WTL Architecture

下一篇:电梯坏了怎么办?