BCGControlBar的使用方法

1、新建一个工程或打开已有工程,打开ClassView视图,点击右键选择New Class,Class type选择Generic Class,

类名为:CWorkspaceBar

基类选择:CBCGPDockingControlBar (默认public继承) 

2、打开ClassView视图,选择CMainFrame,打开MainFrm.cpp,在OnCreate()函数中添加:

if (!m_wndWorkSpace.Create (_T("View  1"), this, CRect (0, 0, 210, 210),TRUE, ID_VIEW_WORKSPACE,

        WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI))

{

      TRACE0("Failed to create Workspace bar/n");

      return FALSE;      // fail to create

}

 

m_wndWorkSpace.SetIcon (imagesWorkspace.ExtractIcon (0), FALSE);

 

m_wndWorkSpace.EnableDocking(CBRS_ALIGN_ANY);

 

 

EnableDocking(CBRS_ALIGN_ANY);

EnableAutoHideBars(CBRS_ALIGN_ANY);

 

DockControlBar (&m_wndWorkSpace);

3、打开MainFrm.h,添加:

#include "WorkspaceBar.h"

 

public:

          CWorkspaceBar m_wndWorkSpace;

4、在WorkspaceBar.h中添加:

 

protected:

CCamera* cc;   //CCamera为对话框类,需要将CCamera对话框放置在WorkspaceBar之上

 

 

 

public:

virtual BOOL CanBeClosed()const{ return FALSE;};    //禁止关闭

virtual BOOL CanFloat()const{return FALSE;};          //禁止浮动

 

 

 

 

// Generated message map functions

protected:

//{{AFX_MSG(CWorkspaceBar)

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 

afx_msg void OnSize(UINT nType, int cx, int cy);

afx_msg void OnPaint(); //点击类右键->Add Windows Messages Handle添加WM_CREATE、WM_PAINT、WM_SIZE

//}}AFX_MSG

5、在WorkspaceBar.cpp中添加:

#include "camera.h"   //需要放置在WorkspaceBar之上的对话框文件

 

 

在构造函数中添加:

 

CWorkspaceBar::CWorkspaceBar()

{

    CRuntimeClass* pFactory = RUNTIME_CLASS(CCamera);

    cc = (CCamera *)(pFactory->CreateObject());

}

 

 

 

int CWorkspaceBar::OnCreate(LPCREATESTRUCT lpCreateStruct) 

{

      if (CBCGPDockingControlBar::OnCreate(lpCreateStruct) == -1)

      return -1;

 

     CRect rect;

     GetClientRect (rect);

     CRect ccRect;

     ccRect.left=rect.left;

     ccRect.top=rect.top;

     ccRect.right=(long)(rect.right);

     ccRect.bottom=rect.bottom;

 

     if (cc!= NULL)

    {

          cc->CreateView(this,NULL,ccRect);

    }

 

   return 0;

}

 

 

 

void CWorkspaceBar::OnSize(UINT nType, int cx, int cy) 

{

       CBCGPDockingControlBar::OnSize(nType, cx, cy);

}

 

 

 

void CWorkspaceBar::OnPaint() 

{

       CPaintDC dc(this); // device context for painting

       CRect rect;

       GetClientRect (rect);

       CRect ccRect;

       ccRect.left=rect.left;

       ccRect.top=rect.top;

       ccRect.right=(long)(rect.right);

       ccRect.bottom=rect.bottom;

       cc->MoveWindow(&ccRect,TRUE );

}

 

6、新建一个对话框,并在此对话框上放置相应的控件。并为此对话框新建类CCamera(CCamera类继承于CFormView),对话框中的具体操作不再一一详述。整个BCGControlBar的使用方法就是这样,也不知道漏掉什么没有,(*^__^*) 嘻嘻……

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值