BCGControlBar教程:可视化管理器

BCGControlBar Pro for MFC最新试用版下载请猛戳>>>

BCGControlBar库框架允许您创建各种应用程序“skins”并轻松更改用户界面元素的外观。虽然该产品具有超过25个预先构建的视觉主题,但您可以轻松实现自定义主题。 在下图中,您可以看到从“BCGPMediaPlayer”和“BCGPMSMoneyDemo”示例中截取的屏幕截图:

BCGControlBar

该框架维护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; 
    }
}

猜你喜欢

转载自blog.csdn.net/xiaochuachua/article/details/83615872