BCG界面库
之前用过BCG界面库中的表格控件,深感其强大,现在再来用一下其它的。
一. 关于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\BCGControlBar Professional Evaluation路径下。
三. 使用BCGControlBar创建工程。
- 安装的BCGControlBar已经将要用到的库进行了编译与链接,并放在了安装目录(默认为:C:\Program Files\BCGSoft\BCGControlBar Professional Evaluation)的bin目录下。
BCGControlBar要使用的dll也已经放到system32目录下。同时,在BCGCBPro目录下也有其需要的头文件。在其安装目录下的Examples中有其随带的Demo程序,可以运行,并看到其运行效果。
在编译之前,要先设置其附加包含目录和附加库目录。
vc6.0在其tools>>options>>directoris下进行设置。在show directories for选择include files,添加BCGControlBar安装目录下的BCGCBPro目录。
然后再选择show directories for下的Library files并添加BCGControlBar安装目录下的bin目录。
vs2010中在工程的属性页中的配置属性>>VC++目录下可以设置包含目录的库目录。
设置完成后就可以编译运行,看到所编译的例子的执行效果。
- 安装BCGControlBar后可以在新建项目的时候选择BCGCBPro AppWizard向导进行项目的创建。在其step中会添加与BCGControlBar有关的一些选项,可以在创建的时候对其进行相应的设置。设置完成后,选择finish就可以创建相应的BCGControlBar项目。在其中可以很方便的使用其控件。
- 对于已经存在的项目,也可以通过修改其中的一些选项和代码,使其变成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
(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) 生成程序,并执行它。
(11)使用BCG界面库给cdialog换肤很简单
将cdialog或是cdialogex改为cbcgpdialog 并在init中加上
CBCGPVisualManager2007:: SetStyle ( CBCGPVisualManager2007:: VS2007_LunaBlue);
CBCGPVisualManager:: SetDefaultManager ( RUNTIME_CLASS ( CBCGPVisualManager2007));
EnableVisualManagerStyle(true,true);
看一看炫酷的界面吧。


BCG界面库的更多相关文章
- BCG界面库下的Windows8 UI界面样式www.webui8.com
BCG界面库下的Windows8 UI界面样式(Metro风格)控件主要有以下一些功能: 规则的大块磁贴 支持完整键盘导航 Tile组 标题(Caption) 标题按钮(Caption buttons ...
- 安装BCG界面库 会导致vs2013qt库配置消失
安装BCG界面库 会导致vs2013qt库配置消失 安装BCG界面库 会导致vs2013qt库配置消失 安装BCG界面库 会导致vs2013qt库配置消失
- C++100款开源界面库[转]
(声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的 ...
- C++ 100款开源界面库 (10)
(声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的 ...
- C++界面库
刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自 ...
- 仿迅雷播放器教程 -- C++ 100款开源界面库 (10)
(声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系 ...
- 仿迅雷播放器教程 -- C++ windows界面库对比(11)
从上一篇文章中可以看出,C++的界面方向还很弱,没有任何一个界面库可以一统天下,所以才造成了界面库百家争鸣的情况. 从时间上看: 1.出来最早的是QT,1991年就有了. 2.VC++ 虽然1992年 ...
- C++界面库(十几种,很全)
刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自 ...
- JUCE 界面库显示中文乱码问题
JUCE 界面库显示中文乱码问题 环境: Windows7 64位 旗舰版 Visual Studio Ultimate 2012 JUCE 4.1 问题描述: 直接使用juce::String存储中 ...
随机推荐
- Centos 6\7下yum安装rstudio-server\shiny-server
rstudio-server安装 #wget https://download2.rstudio.org/rstudio-server-rhel-1.1.463-x86_64.rpm #yum ins ...
- 面向对象【day08】:异常处理-断言(七)
本节内容 1.概述 2.知识点回顾 3.断言 一.概述 python中断言,这个我是第一次听说到的,断言有什么用呢?断言就是做一些程序的检查工作,就是在执行之前需要做的一些检查,比如类似于安检一样,合 ...
- java io系列11之 FilterOutputStream
FilterOutputStream 介绍 FilterOutputStream 的作用是用来“封装其它的输出流,并为它们提供额外的功能”.它主要包括BufferedOutputStream, Dat ...
- python Bootstarp框架和inconfont、font-awesome使用
http://www.bootcss.com/ http://www.runoob.com/bootstrap/bootstrap-panels.html 查找基本的没问题 https://www. ...
- python 包和模块间的引入
##############################总结####################### 主要内容: 1. 模块 2. import 3. from xxx import xxx ...
- angular中的服务
angular中的服务 angular中的服务相当于一个状态管理,可以将数据放在服务里面进行获取以及编辑. 服务的安装命令: ng g service count 安装好后,会在服务的ts文件中引入一 ...
- SpringSecurity3Demo【原】
oschina git地址: https://gitee.com/KingBoBo/SpringSecurity3Demo.git
- jQuery源码解析对象实例化与jQuery原型及整体构建模型分析(一)
//源码剖析都基于jQuery-2.0.3版本,主要考虑到兼容IE 一.关于jQuery对象实例化的逻辑: 整个jQuery程序被包裹在一个匿名自执行行数内: (function(window,und ...
- C++模板的使用以及常见问题
最近的数据结构实验频繁地遇到了模板,之前对这一块接触不多,遇到了很多问题,放到这里总结一下. 模板的声明有两种:template <typename Type>或者template< ...
- javascript获取值
<div id='name'>张三</div> $('#name').val() $(name).val() 以上两个都可以得到值,第一种用的比较多.