一.   关于BCGControlBar。

BCGControlBar是一个基于MFC的扩展库,您可以通过完全的用户化操作构成一些类似于Microsoft Office 2000/XP/2003和Microsoft Visual Studio.NET的应用程序(用户工具栏、菜单、键盘等等)。BCGControlBar库包含了大约150多个经过精心设计,测试和具有完备文档的MFC扩展类。这些都可以很容易的应用于您的应用程序,节省大量的开发和调试时间。BCGControlBar专业版的扩展库,包含了大量高级界面,比如,可分离的表窗口,自动隐藏窗体,托拽的时候能够显示贴靠控件和工具栏的内容,新增帖靠算法(类似于在Microsoft Visual Studio.NET环境和Microsoft Visio中引入的算法),具有可分离的快捷栏,制表工具栏,语法检验和IntelliSense-style支持的文本控件,完全的平面视觉等等。除了与MFC兼容的控制栏的执行部分,这个库的其它结构完全是由我们自己设计的。大部分新的系统特性都是由库的内核自动激活和管理的。

二.   下载并安装BCGControlBar。

在BCGSoft的官网(http://www.bcgsoft.com/)选择BCGControlBar,并下载。由于BCGControlBar是一个付费的软件,所以,在其官网上只能免费下载到其evaluation version(评估版本)。将下载的BCGControlBarProEvaluation.exe打开,就可以进行BCGControlBar的安装了。默认会安装在C:\Program Files\BCGSoft\BCGControlBarPro路径下。

三.   使用BCGControlBar创建工程。

1. 安装的BCGControlBar已经将要用到的库进行了编译与链接,并放在了安装目录(默认为:C:\Program Files\BCGSoft\BCGControlBarPro)的Bin目录下。

BCGControlBar要使用的dll也已经放到system32目录下。同时,在BCGCBPro目录下也有其需要的头文件。在其安装目录下的Examples中有其随带的Demo程序,可以运行,并看到其运行效果。

在编译之前,要先设置其附加包含目录和附加库目录

l  vc6.0在其tools>>options>>directoris下进行设置。在show directories for选择include files,添加BCGControlBar安装目录下的BCGCBPro目录。然后再选择show directories for下的Library files并添加BCGControlBar安装目录下的bin目录。

l  vs2010中在工程的属性页中的配置属性>>VC++目录下可以设置包含目录的库目录。

设置完成后就可以编译运行,看到所编译的例子的执行效果。

1. 安装BCGControlBar后可以在新建项目的时候选择BCGCBPro AppWizard向导进行项目的创建。在其step中会添加与BCGControlBar有关的一些选项,可以在创建的时候对其进行相应的设置。设置完成后,选择finish就可以创建相应的BCGControlBar项目。在其中可以很方便的使用其控件。

2. 对于已经存在的项目,也可以通过修改其中的一些选项和代码,使其变成BCGControlBar的项目,可以使用BCGControlBar。在使用之前先要设置其包含目录和其库目录,其设置方法见以上1之中。其具体的实现步骤如下(在修改之前最好对工程进行一个备份):

1)         在头文件stdafx.h中加入#include "BCGCBProInc.h"。

2)         为自己的App类添加基类CBCGPWorkspace。如:class CMyApp : public CWinApp, public CBCGPWorkspace。

3)         在App类的InitInstance()函数中添加AfxOleInit()。

4)         在InitInstance()函数中添加SetRegistryKey(_T("MyCompany\\MyProduct"))。

5)         在App类的ExitINstance()函数中添加BCGCBProCleanUp()。

6)         将MDI中的一些类用BCGControlBar来进行转换:

CFrameWnd -> CBCGPFrameWnd

CMDIFrameWnd -> CBCGPMDIFrameWnd

CMDIChildWnd -> CBCGPMDIChildWnd

CToolBar -> CBCGPToolBar

CStatusBar ->CBCGPStatusBar.

可以在StdAfx.h中添加如下代码

#define CFrameWnd CBCGPFrameWnd

#define CMDIFrameWnd CBCGPMDIFrameWnd

#define CMDIChildWnd CBCGPMDIChildWnd

#define CToolBar CBCGPToolBar

#define CStatusBar CBCGPStatusBar

(7)如果希望添加Microsoft Office 2007/2010-style Ribbon Bar,可以参考以下文章,学习这些技术:

Office 2007/2010-style Ribbon Bar

Ribbon Backstage View - Walkthrough

Ribbon Designer

(8)为CmaimFrame类添加嵌入菜单对象。在CmainFrame类中添加成员变量CBCGPMenuBar m_wndMenuBar。然后在其OnCreate函数中加入如下代码:

m_wndMenuBar.Create (this);

m_wndMenuBar.EnableDocking (CBRS_ALIGN_ANY);

DockControlBar (&m_wndMenuBar);

(9)在CMainFrame::OnCreate的开始加入应用程序可视化的风格。其函数如下:

CBCGPVisualManager::SetDefaultManager (RUNTIME_CLASS (manager));

其中manager的取值与风格对照如下:

CBCGPVisualManager

MS Office 2000/VC++ 6.0 look

CBCGPVisualManagerXP

MS Office XP/Visual Studio.NET look

CBCGPVisualManager2003

MS Office 2003 look

CBCGPVisualManagerVS2005

Visual Studio 2005 look

CBCGPWinXPVisualManager

Native Windows XP/Vista/Windows 7 look.

CBCGPVisualManager2007

MS Office 2007 look

CBCGPVisualManagerVS2008

Visual Studio 2008 look

CBCGPVisualManagerVS2010

Visual Studio 2010 look

CBCGPVisualManager2010

MS Office 2010 look

CBCGPVisualManagerScenic

Windows 7 Ribbon look.

(10)   生成程序,并执行它。

BCGControlBar使用方法(转)的更多相关文章

  1. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  2. MFC界面库BCGControlBar v30.1——Grid/Report控件

    亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v30.1正式发布!此版本包含themed find ...

  3. MFC界面库BCGControlBar v30.1新功能详解:Dialogs和Forms

    亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v30.1正式发布!此版本包含themed find ...

  4. mapreduce多文件输出的两方法

    mapreduce多文件输出的两方法   package duogemap;   import java.io.IOException;   import org.apache.hadoop.conf ...

  5. 【.net 深呼吸】细说CodeDom(6):方法参数

    本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...

  6. IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法

    直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...

  7. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  8. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  9. ArcGIS 10.0紧凑型切片读写方法

    首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...

随机推荐

  1. 修改Windows XP的桌面路径

    WinowsXP 的桌面的是在系统盘上,一但系统瘫痪需要重新安装系统时,总得记得去备份桌面的重要文件,如果一不小心忘记备份就重装系统的话,那些重要文件就一去不复返了.其实我们可以把桌面放到其它盘目录里 ...

  2. [置顶] 【cocos2d-x入门实战】微信飞机大战之三:飞机要起飞了

    转载请表明地址:http://blog.csdn.net/jackystudio/article/details/11730601 不过明眼人一看就知道起飞的不是飞机,是背景,相对运动引起的错觉. 1 ...

  3. 简单RTP发送类c++实现

    我之前编译了jrtplib 3.9.1,并且在项目中使用,结果发现在用这个库时,程序体积有增加了300多K,感觉实在是有点笨重,我无法就是用来发送rtp包而已.想想还是自己重新实现一个简单的类用用拉倒 ...

  4. 饿了么移动APP的架构演进(转)

    原文:http://www.jianshu.com/p/2141fb0dc62c 文/圣迪(简书作者)原文链接:http://www.jianshu.com/p/2141fb0dc62c著作权归作者所 ...

  5. Swfit中视图跳转

    .跳转到任一UIViewController var sb = UIStoryboard(name: "Main", bundle:nil) var vc = sb.instant ...

  6. .net通用权限框架B/S (三)--MODEL层(1)

    1.新建c#类库 2.安装配置好entity frame5 3.新建的类库项目上右键"添加--新建项",选择AOD.NET实体数据模型 4.设置数据库连接, 5.选择建好的表 6. ...

  7. [树结构]平衡二叉树AVL

    平衡二叉树是一种二叉排序树,其中每一个节点的左子树和右子树的高度至多等于1,平衡二叉树又称为AVL树. 将二叉树节点的左子树深度减去右子树深度的值称为平衡因子BF,平衡二叉树上所有节点的平衡因子只可能 ...

  8. 安装Eclipse Html Editor

    最近在eclipse中开发android项目,用到了jquery mobile框架,则会涉及到新建html文件,发现eclipse不自带新建html文件的插件,必须得新建一个其他形式的文件,譬如xml ...

  9. Javascript中的attribute和property分析

    attribute和property这两个单词,都有属性的意思,attribute有属性.特质的意思,property则有性质,性能的意思. 首先需要明确的是,在规范中,读取和设置attribute的 ...

  10. 高效CSS开发核心要点摘录

    做网站的,我们都知道尽量减少请求数,压缩CSS代码量,使用高效CSS选择符等方式可以来提高网站的载入速度和访问速度,也就是优化网站的性能. 下面分析了一些CSS的书写方式,很多都是我们知道并且正在使用 ...