BCGControlBar教程:可视化管理器

BCGControlBar库框架能创建各种应用程序“skins”并轻松更改用户界面元素的外观。 虽然该产品具有超过25个预先构建的视觉主题,但用户可以轻松实现自定义主题。

在下图中,可以看到从“BCGPMediaPlayer”和“BCGPMSMoneyDemo”示例中截取的屏幕截图:

BCG

该框架维护CBCGPVisualManager类的全局对象,默认情况下绘制以下GUI元素:

  • 条形边框(OnDrawBarBorder)
  • 棒夹(OnDrawBarGripper)
  • 按钮边框(OnDrawButtonBorder)
  • 标题按钮(OnDrawCaptionButton)
  • 菜单边框(OnDrawMenuBorder)
  • 分隔符(OnDrawSeparator)
  • 填充栏背景(OnFillBarBackground)
  • 填充按钮内部(OnFillButtonInterior)
  • 突出显示菜单项(OnHighlightMenuItem)

每个元素由单独的虚函数显示。

要实现自己的皮肤,应该执行以下步骤:

  1. 从CBCGPVisualManager类派生自己的类。
  2. 对于要自定义其外观的每个GUI元素,将覆盖相关的绘图功能。
  3. CBCGPVisualManager对象是一个单例。如果要实例化可视化管理器对象,则应删除以前的实例。使用CBCGPVisualManager :: GetInstance静态函数来访问当前实例。

以下示例显示如何在默认和自定义可视管理器之间切换:

void CMyApp::SetCustomTheme(int iThemeIndex)
{
    switch (iThemeIndex)
    {
    case OFFICE_2016_CUSTOM_THEME:
        // CMyOffice2016Theme is derived from CBCGPVisualManager2016 class
        SetVisualTheme(BCGP_VISUAL_THEME_OFFICE_2016_COLORFUL, 
            RUNTIME_CLASS(CMyOffice2016Theme);
        break; 

    case VS_2017_CUSTOM_STYLE:
        // CMyVS2017Theme is derived from CBCGPVisualManagerVS2013 class
        SetVisualTheme(BCGP_VISUAL_THEME_VS_2013_BLUE, 
            RUNTIME_CLASS(CMyVS2017Theme);
        break; 
    }
}

 

转载于:https://my.oschina.net/u/4009527/blog/2977307

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值