如何在 Docking Windows 上添加控制項 (控件)

繼續來做類似 VC 的視窗架構

在上一篇的 Docking Windows 基礎上加入我們需要的 CTreeCtrl 和 CEdit

先看一下結果

2014-07-11-02

 

[實作過程]

1. 加入 CoolTabCtrl.h 和 CoolTabCtrl.cpp

2. 在 MainFrm.h 中宣告

 #include "CoolTabCtrl.h"// Added by ClassView

class CMainFrame : public CMDIFrameWnd
{
public:
 CCoolTabCtrl m_LeftTabCtrl;
 CTreeCtrl m_wndTree;
 CEdit m_wndEdit;
}

3. 在 MainFrm.cpp 創建完 CControlBar 之後加入以下程式碼

m_LeftTabCtrl.Create(TCS_DOWN|WS_CHILD|
	WS_VISIBLE,CRect(0,0,100,100),&m_wndDockingLeftBar,125);
	
/////////////Create TreeCtrl////////////
if (!m_wndTree.Create(WS_CHILD|WS_VISIBLE|
	TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT,
	CRect(0, 0, 0, 0), &m_LeftTabCtrl, IDC_MYTREECTRL))
{
	TRACE0("Failed to create instant bar child\n");
	return -1;
}
m_wndTree.ModifyStyleEx(0, WS_EX_CLIENTEDGE);

// Add content into the TreeCtrl
HTREEITEM hti = m_wndTree.InsertItem(_T("Example1"));
m_wndTree.InsertItem(_T("Example2"));
m_wndTree.InsertItem(_T("Source Files"), hti);
m_wndTree.InsertItem(_T("Linker Files"), hti);
m_wndTree.InsertItem(_T("Header Files"), hti);

// Add the TreeCtrl into m_LeftTabCtrl
m_LeftTabCtrl.AddPage(&m_wndTree,"Project");
m_LeftTabCtrl.UpdateWindow();

////////EditCtrl///////////
if(!m_wndEdit.Create(WS_VSCROLL|WS_CHILD|WS_VISIBLE|
	ES_AUTOVSCROLL|ES_MULTILINE|ES_WANTRETURN,
	CRect(0,0,0,0),&m_wndDockingBottomBar,101)) 
return -1; 
m_wndEdit.ModifyStyleEx(0,WS_EX_CLIENTEDGE);

 

[參考資料]

1. CSizingControlBar – a resizable control bar

2. 轻松实现类VC界面

3. 轻松实现类VC界面》配套源代码