基于CCoolBar侧边栏的实现

本文介绍如何在VC项目中创建侧边栏,并集成TOCControl、MapControl、FlexGrid和TreeControl等控件。通过步骤说明实现对话框及控件栏的创建与配置,包括代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本项目实现类VC侧边栏的创建,并将TOCControl、MapControl和FlexGrid、TreeControl加入到侧边栏。

TOCControl用于图层显示,MapControl用于鹰眼,FlexGrid、TreeControl用于显示属性表。


1. 新建3个对话框,分别放入控件

    • TOCControl
    • MapControl
    • FlexGrid 和 Tree Control
并将Style属性改为Child,Border属性改为None


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


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值