BCG界面库_bcg模式什么意思

BCG界面库_bcg模式什么意思本文以MDI应用程序为例说明如何在已有的VC++工程中使用BCG界面库,我的开发环境为VS2003。1,将BCG/BCGCBPro目录路径添加到“项目属性->C/C++->常规->附加包含目录”中,同时将BCG/Bin目录路径添加到“项目属性->链接器->常规->附加库目录”中。2,确保在CWinApp派生类(设为CMyApp)的InitInstance()成员函数中调用A

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用
本文以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,否则切换风格时会失败。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184476.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 明翰英国硕士常见词汇与固定搭配V1.1(持续更新)

    明翰英国硕士常见词汇与固定搭配V1.1(持续更新)文章目录传送门正文`熟词僻义`学术词汇`论文词汇`学校词汇计算机词汇生活词汇健康饮食犯罪网络用语口语俚语传送门杨明翰英语教学系列之方法篇杨明翰英语教学系列之音标篇杨明翰英语教学系列之名词篇杨明翰英语教学系列之动词篇杨明翰英语教学系列之形容词与副词篇杨明翰英语教学系列之冠词篇杨明翰英语教学系列之代词篇杨明翰英语教学系列之介词篇杨明翰英语教学系列之连词篇杨明翰英语教学系列之数词篇杨明翰英语教学系列之时态与语态篇杨明翰英语教学系列之句法篇杨明翰英语教学系列之口语篇杨明翰英语教学系

  • extremeDB_shiro使用详解

    extremeDB_shiro使用详解1、准备工作:下载eXtremeDB安装包(http://www.leadingtek.com.cn/)然后将安装或解压至磁盘。此时可以看到其目录下有host、include、platform和target等目录。2、用你喜欢的文本编辑器构建一数据库结构,文本内容如下:(举例说明,保存文件名为test.mco)#defineint1    signed#definein

    2022年10月10日
  • kubeadm安装k8s 组件controller-manager 和scheduler状态 Unhealthy

    kubeadm安装k8s 组件controller-manager 和scheduler状态 Unhealthy

  • 【MySQL 数据库】数据库的基础知识「建议收藏」

    【MySQL 数据库】数据库的基础知识「建议收藏」文章目录1.认识数据库1.1数据库和数据结构的关系1.2为什么需要数据库1.3数据库的存储2.SQL2.1介绍2.2分类3.数据库的类别3.1关系型数据库3.2非关系型数据库3.3区别4.MySQL的程序结构4.1客户端和服务器4.2MySQL的客户端-服务器结构4.3MySQL服务器1.认识数据库1.1数据库和数据结构的关系数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,是一个抽象的学科我们熟知的数据结构有:顺序表、链表、栈、队列、二

  • 同济大学土木工程学院招收2名秋季入学全日制博士生

    同济大学土木工程学院招收2名秋季入学全日制博士生招生群体面向应届或往届硕士生,2020年秋季入学的博士生(全日制)研究方向智能建造与运营、人工智能与土木工程创新应用拟招人数2人招生要求具有本科和硕士学位,本科211或985;优…

  • Spring配置与第一Spring HelloWorld

    Spring配置与第一Spring HelloWorld

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号