Skip Navigation LinksBCGSoft > Support > Developer Area > Visualization manager

Visualization manager

The BCGControlBar Library framework allows you to create various application "skins" and easily change the look and feel of user-interface elements. Although the product has more than 25 pre-built visual themes, you can easily implement your custom theme(s).

On the picture below, you can see a screenshot taken from the "BCGPMediaPlayer" and "BCGPMSMoneyDemo" examples:


The framework maintains a global object of CBCGPVisualManager class, that by default draws the following GUI elements:

  • bar borders (OnDrawBarBorder)
  • bar grippers (OnDrawBarGripper)
  • button borders (OnDrawButtonBorder)
  • caption buttons (OnDrawCaptionButton)
  • menu borders (OnDrawMenuBorder)
  • separators (OnDrawSeparator)
  • fills bar background (OnFillBarBackground)
  • fills button interior (OnFillButtonInterior)
  • highlights menu items (OnHighlightMenuItem)

Each element is displayed by a separate virtual function.

To implement your own skin, you should perform the following steps:

  1. Derive your own class from the CBCGPVisualManager class.
  2. For each GUI element whose appearance you want to customize, override the relevant drawing function.
  3. The CBCGPVisualManager object is a singleton. When you want to instantiate a visual manager object, you should delete the previous instance. Use the CBCGPVisualManager::GetInstance static function to get access to the current instance.

The following example shows how to switch between default and custom visual managers:

void CMyApp::SetCustomTheme(int iThemeIndex)
    switch (iThemeIndex)
    case OFFICE_2016_CUSTOM_THEME:
        // CMyOffice2016Theme is derived
        // from CBCGPVisualManager2016 class:

    case VS_2017_CUSTOM_STYLE:
        // CMyVS2017Theme is derived 
        // from CBCGPVisualManagerVS2013 class

Back to the Developer Area