控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

已有VC++工程中如何添加BCG界面库

作者:crazyi 出处:互联网 2010年03月24日 阅读:

已有VC++工程中如何添加BCG界面库

本文以MDI应用程序为例说明如何在已有的VC++工程中使用BCG界面库,我的开发环境为VS2003。

  1,将BCG/BCGCBPro目录路径添加到“项目属性->C/C++ ->常规 ->附加包含目录”中,同时将BCG/Bin目录路径添加到“项目属性->链接器 ->常规 ->附加库目录”中。

  2,确保在CWinApp派生类(设为CMyApp)的InitInstance()成员函数中调用AfxOleInit();

  3,在ExitInstance()函数中添加:

  CleanState();
  BCGCBProCleanUp();

  4,在stdafx.h中添加

  #include "bcg/BCGCBProInc.h"

  5,为CMyApp添加基类,如下:

  class CMyApp:public CWinApp,public CBCGPWorkspace

  6,设置个性化的数据在注册表中的存放位置和需要个性化的特性。在CMyApp::InitInstance()函数中添加:

  SetRegistryBase(_T("Settings"));

  InitMouseManager();
  InitContextMenuManager();
  InitKeyboardManager();

  7,将CMDIFrameWnd 修改为 CBCGPMDIFrameWnd,注意MainFrm.h和MainFrm.cpp中的所有CMDIFrameWnd都要改。

  8,将CMDIChildWnd改成CBCGPMDIChildWnd,.h和.cpp中的都要改。

  9,将CToolBar m_wndToolBar修改成CBCGPToolBar m_wndToolBar,并在你的CMainFrame类中添加一个CBCGPMenuBar类型的成员m_wndMenuBar,如下示:

  CBCGPMenuBar    m_wndMenuBar;     // New menu bar
  CBCGPToolBar      m_wndToolBar;      // Application toolbar

  10,为使菜单条生效并且可停靠,在CMainFrame::OnCreate()函数中添加以下内容:

    if (!m_wndMenuBar.Create (this)){
      TRACE0("Failed to create menubar\n");
      return -1;      // fail to create
    }

     m_wndMenuBar.SetBarStyle(m_wndMenuBar.GetBarStyle() |
                              CBRS_TOOLTIPS | CBRS_FLYBY |

                             CBRS_SIZE_DYNAMIC);

    m_wndMenuBar.EnableDocking (CBRS_ALIGN_ANY);
    DockControlBar (&m_wndMenuBar);

  说明:你可以在你的应用程序中使用多个CBCGPToolBar,它们对应的位图将会自动地合并在一张位图上,然而,你只可以使用一个CBCGPMenuBar对象。

  至此基本设置已经完成,此时你的程序应该可以正常地编译运行。下面介绍如何为应用程序设置不同的风格。

  1,在菜单栏上添加一个弹出菜单,在其中添加一个菜单项,上面的文字分别为"Office 2003","Office 2007(blue)","Office 2007(black)","Office 2007(silver)","Office 2007(aqua)",对应的菜单项ID分别为ID_VIEW_APPLOOK_2003,ID_VIEW_APPLOOK_2007_1,,ID_VIEW_APPLOOK_2007_2,ID_VIEW_
APPLOOK_2007_3,ID_VIEW_APPLOOK_2007_4。

  2,为这五个菜单添加消息响应:

   在MainFrm.cpp文件中,添加消息映射(在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间):

   ON_COMMAND_RANGE(ID_VIEW_APPLOOK_2003, ID_VIEW_APPLOOK_2007_4, OnAppLook)

   在CMainFrame类中添加OnAppLook函数声明:

   afx_msg void OnAppLook(UINT id);

   添加其方法实现:

   void CMainFrame::OnAppLook(UINT id){
         CWaitCursor wait;

         CBCGPVisualManager2007::SetCustomColor ((COLORREF)-1);

         switch (id){
               case ID_VIEW_APPLOOK_2003:CBCGPVisualManager::SetDefaultManager(

                                         RUNTIME_CLASS (CBCGPVisualManager2003));
                                         break;

               case ID_VIEW_APPLOOK_2007_1:

                       CBCGPVisualManager2007::SetStyle (CBCGPVisualManager2007::VS2007_Aqua);

                       CBCGPVisualManager::SetDefaultManager (
                         RUNTIME_CLASS (CBCGPVisualManager2007));

                       break;

               ...

         }
          RedrawWindow (NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW |                      RDW_FRAME | RDW_ERASE);

        }

     Office 2007其它的风格样式切换类似ID_VIEW_APPLOOK_2007_1,在此省略。

  3,运行时请确保程序能够找到Bin目录下的相关DLL,否则切换风格时会失败。

  注:本文参考了BCGSoft中的相关文档(Developer Area/Getting Started),在此基础上有所省略与补充。其实我也只是刚用BCG,在使用过程中也遇到了不少麻烦,所以写下这篇笔记以供参考。

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统