• 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 FilesBCGSoftBCGControlBar Professional Evaluation路径下。

    三.   使用BCGControlBar创建工程。

    1. 安装的BCGControlBar已经将要用到的库进行了编译与链接,并放在了安装目录(默认为:C:Program FilesBCGSoftBCGControlBar 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++目录下可以设置包含目录的库目录。

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

    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)   生成程序,并执行它。

    (11)使用BCG界面库给cdialog换肤很简单

    将cdialog或是cdialogex改为cbcgpdialog  并在init中加上

        CBCGPVisualManager2007:: SetStyle ( CBCGPVisualManager2007:: VS2007_LunaBlue); 
        CBCGPVisualManager:: SetDefaultManager ( RUNTIME_CLASS ( CBCGPVisualManager2007)); 
        EnableVisualManagerStyle(true,true); 

    看一看炫酷的界面吧。

  • 相关阅读:
    在前端眼中pc端和移动的开发区别
    两个对象的合并
    关于后台传来的json是含英文字母的string
    关于jquery的取消阻止默认事件
    练习:模态对话框
    JS之DOM节点增删改查与属性设置
    JS之DOM Event(事件)
    JS的DOM对象之DOM节点
    JS的history对象和location对象
    JS的BOM对象之window对象,利用window对象方法实现定时器
  • 原文地址:https://www.cnblogs.com/liaocheng/p/4267786.html
Copyright © 2020-2023  润新知