本项目实现类VC侧边栏的创建,并将TOCControl、MapControl和FlexGrid、TreeControl加入到侧边栏。
TOCControl用于图层显示,MapControl用于鹰眼,FlexGrid、TreeControl用于显示属性表。
1. 新建3个对话框,分别放入控件
- TOCControl
- MapControl
- FlexGrid 和 Tree Control
2. 为3个对话框新建类
类名分别为TOCDlg、HakDlg、CAttrDlg
3. 加入CCoolBar、CCoolTabCtrl
点击Project -> Add To Project -> Files,将以下文件加入工程。
scbarg.cpp、scbarg.h
sizecbar.cpp、sizecbar.h
CoolTabCtrl.cpp、CoolTabCtrl.h
4. 引入头文件
在stdafx.h中加入以下代码
#include "sizecbar.h"
#include "scbarg.h"
#include "CoolTabCtrl.h"
在MainFrm.h中加入以下代码
#include "TOCDlg.h"
#include "AttrDlg.h"
#include "HakDlg.h"
5. 加入类成员变量 在CMainFrame类中加入3个对话框成员变量
public:
//申明左侧对话框成员变量
TOCDlg m_TocDlg;
HakDlg m_hakDlg;
CAttrDlg m_AttrDlg;
在CMainFrame类中加入2个控件栏成员变量
protected: // control bar embedded members
CCoolBar m_wndMyBar;
CCoolTabCtrl m_TabCtrl;
6. 具体代码实现
MainFrm.cpp的OnCreate中加入以下代码
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
// m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
// EnableDocking(CBRS_ALIGN_ANY);
// DockControlBar(&m_wndToolBar);
////////////////////////////////////////////
if( !m_wndMyBar.Create(_T("控制栏"),this, CSize( 250, 400 ), TRUE, 123 ) )
{
TRACE0("Failed to create mybar\n");
return -1;
}
//设置样式
m_wndMyBar.SetBarStyle( m_wndMyBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY |
CBRS_SIZE_DYNAMIC );
//设置停靠
m_wndMyBar.EnableDocking( CBRS_ALIGN_ANY );
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar( &m_wndMyBar, AFX_IDW_DOCKBAR_LEFT );///停靠
//////
m_TabCtrl.Create( TCS_DOWN | WS_CHILD | WS_VISIBLE, CRect( 0, 0, 200, 200),
&m_wndMyBar, 125);
//生成TOC对话框,并加入m_TabCtrl中
if( m_TocDlg.Create( IDD_DLG_TOC, &m_TabCtrl ) )
m_TabCtrl.AddPage( &m_TocDlg, " 图层 " );
//生成Attr对话框,并加入m_TabCtrl中
if( m_AttrDlg.Create( IDD_DLG_ATTR, &m_TabCtrl ) )
m_TabCtrl.AddPage( &m_AttrDlg, " 属性 " );
//生成HAK对话框,并加入m_TabCtrl中
if( m_hakDlg.Create( IDD_DLG_HAK, &m_TabCtrl ) )
m_TabCtrl.AddPage( &m_hakDlg, " 鹰眼 " );
m_TocDlg.ShowWindow( SW_SHOW );
m_TabCtrl.UpdateWindow();
本文参考【轻松实现类VC界面】
http://www.vckbase.com/document/viewdoc/?id=257