Skip Navigation LinksBCGSoft > Release Notes > Version Release Notes

Release Notes

BCGControlBar Professional Edition

Version: 37.1. Released: 11/12/2025

  1. Implemented Visual Studio 2026 (Insiders version) support (the retail product versions only). Our products are fully ready to be used with the upcoming version of Visual Studio:
    • We have prepared the libraries' projects and solutions for Visual Studio 2026.
    • The integration wizard has been updated, and now you can integrate and build the libraries in the new Visual Studio.
    • We have ported the BCGControlBar Pro Application Wizard to Visual Studio 2026.
    • All of our examples and samples were thoroughly tested with the new development environment in the various platforms and with different C++ compiler standards.
  2. We have implemented a preview of the Visual Studio 2026 visual manager (see screenshot). This implementation is included in the BCGPVisualStudioGUIDemo as a custom visual manager, but if you like it, you can copy the CVisualManagerVS2026 class to your application source code. The key features of this new visual theme are:
    • Modern, Fluent UI-inspired look.
    • 10+ ready-to-use color themes (see screenshot).
    • The active docking panes, tabs and MDI children are surrounded by the accent color borders (see screenshot).
    • Small gap between the toolbar rows (see screenshot).
    Once the final release of Visual Studio 2026 is ready, we will finalize this visual theme and add it to the library.
  3. Ribbon Bar
    1. Improved spacing between controls in the touch mode (see screenshot): the layout of the Ribbon in this mode is very similar to the latest MS Office versions.
    2. The new method CBCGPRibbonBar::SetContextCaptionVisible allows you to specify the visibility of the contextual tab's caption. By default, the caption is always displayed if the search box is not located on the ribbon caption.
    3. The new method CBCGPRibbonBar::EnablePaletteScrollButtons allows you to show or hide the scroll buttons for the Ribbon gallery (as you can see in the MS Office 2021-2024 applications, the gallery scroll buttons no longer exist). In addition, you can specify the scroll buttons' visibility in the specific gallery by calling a new method, CBCGPRibbonPaletteButton::SetScrollButtons. In the regular ("classic") ribbon mode, the scroll buttons are always visible by default; in the simplified mode, they are hidden.
    4. CBCGPRibbonComboBox: SelectItem, DeleteItem, GetItem and GetItemData methods have a new, optional parameter, 'bSkipGroups' (FALSE by default). If this item is TRUE, the methods are skipping groups and returning only the "real" item/item data.
    5. CBCGPRibbonComboBox now supports the left-aligned selection bar in the dropped-down list item (see screenshot). By default, this bar is drawn only in the Office 2021-2024 and Native Windows themes, but you can specify this bar appearance by calling a new method, SetSelectionBarInDropDown.
    6. CBCGPRibbonPanel::SetName has a new, optimal parameter, 'bUpdateDefaultButton' (FALSE by default). When this parameter is TRUE, the text label of the default button (displayed when the panel is collapsed) is also updated.
    7. Ribbon customization dialog: the appearance of the tree controls has been improved (see screenshot). The expand/collapse buttons now feature an explorer style, and the background color of selected items provides greater contrast.
    8. The ribbon caption bar MDI tabs have an improved appearance in the Office 2021-2024 themes, featuring rounded corners similar to those found in Microsoft Edge and Google Chrome browsers (see screenshot).
    9. Ribbon designer additions:
      • Ribbon bar: added two new properties. 'Context Captions Visible' specifies whether the caption above the contextual tabs is displayed. TRUE always displays the caption; FALSE never displays the caption; and DEFAULT displays the caption only if the ribbon search box is not located on the caption. 'Palette Scroll Buttons' specifies whether the palette (gallery) control has the scroll buttons.
      • The ribbon combo box has a new property called 'Selection Bar.' TRUE: always display the color bar on the left of the selected item; FALSE - never display the bar; Default—the bar appearance is specified by the active visual theme.
      • The ribbon palette button has an added property called 'Scroll Buttons.' TRUE: always display the scroll buttons; FALSE: never display the scroll buttons; DEFAULT: the scroll buttons' appearance is specified by the parent ribbon bar.
  4. Toolbars and Menus
    1. CBCGPToolbarButton: a new method IsOnDockedToolbar tells whether the parent toolbar is docked.
    2. CBCGPToolbarComboBoxButton additions:
      • SetSelectionBarInDropDown: specifies whether the drop-down list selected item has a selection bar on the left (see screenshot). By default, this appearance is specified by the active visual manager (the selection bar is available in the Office 2021-2024 and Windows 11 native themes).
      • IsSelectionBarInDropDown: tells whether the drop-down list selected item has a selection bar on the left.
      • SetDropDownAutoWidth: specifies whether the drop-down list has a width of the widest item (see screenshot). By default, this attribute is specified by the new global flag CBCGPComboBox::m_bDropDownAutoWidth.
      • GetDropDownAutoWidth: tells whether the drop-down list has the width of the widest item.
    3. The CBCGPToolBar::CustomizeButtonStyle enumerator has a new member, CUSTOMIZE_BUTTON_VISUAL_THEME, which means that the custom (toolbar options) button style is specified by the active visual manager.
    4. CBCGPToolbarOptions: a new attribute, m_bQuickCustomization (TRUE by default), specifies whether the quick customize menu should be displayed by clicking the toolbar customization button.
    5. The CBCGPWinApp::SetToolbarOptions method has a new, optional parameter, 'bUpdateExistingToolbars' (FALSE by default). If this parameter is TRUE, the options will be applied to all previously created toolbars.
  5. Dialogs and Forms
    1. CBCGPColorDialog: now, you can specify whether the second page of the color dialog will be activated on startup. You can do this either by setting a new class constructor parameter, bActivateCustomPageOnStartup, to TRUE (for the specific color dialog) or by assigning TRUE to a new global member of this class, m_bActivateCustomPageOnStartup (affects all color dialogs).
    2. CBCGPPropertyPage: a new method SetPageIconIndex allows you to specify any page icon from the property sheet icons list.
  6. Docking Panes
    1. Added a new helper method 'ToggleControlBar' to the frame classes (CBCGPFrameWnd, CBCGPMDIFrameWnd, CBCGPOleIPFrameWnd, CBCGPOleCntrFrameWnd and CBCGPOleDocIPFrameWnd). Call this method to toggle the docking pane visibility.
    2. CBCGPControlBar: implemented ability to specify the control bar external padding by overriding a new virtual method 'GetExternalPadding'.
    3. CBCGPDockingControlBar: a new method, 'IsActive,' tells whether the docking pane is active (focused).
    4. Improved docking pane previews area appearance:
      • When the docking pane is being moved to the tabbed control bar, the temporary (pre-docking) tab is not created anymore, and the tabbed preview window is displayed instead (see screenshot). If for some reason you like the former behavior, simply set a new global flag, CBCGPDockManager::m_bPlaceTabPreDocking, to TRUE.
      • If the docking pane is being moved to the MDI tabbed group, the side preview area is not displayed anymore.
  7. Gauge Controls
    1. A new class CBCGPColorIndicatorCtrl allows to use CBCGPColorIndicatorImpl as standalone control (without the visual container).
    2. We have added a new interactive gauge, CBCGPPushButtonGaugeImpl (see screenshot). This gauge implements a push-like button with the text label and optional icon and visual effects support. Please look at the BCGPGaugesDemo example ("Push Button" view) to see this new component in action.
  8. Visual container and Visual Designer
    1. CBCGPBaseVisualCtrl: implemented the ability to specify the exported image background brush. Call a new method, SetExportedFillBrush, to set the brush and GetExportedFillBrush to obtain the previously specified brush.
    2. Visual designer: added support for the push button control. You can specify the button label, text format, shape, and color, as well as the visual effects in the regular, highlighted, and pressed states.
  9. Visual Manager and Themes
    1. We have added support for docking pane borders that resemble those in Visual Studio (see screenshot). In the Visual Studio 2012-2022 visual themes, the docking panes and MDI tabbed groups have the surrounding borders (unified with the active tab).
    2. The tabs have an improved appearance (OneNote and 3D styles) in the Office 2021-2024 visual theme (see screenshot). The tabs have a fresh, modern look with the rounded corners and smooth edges. If for some reason you prefer the former appearance, please set the new global member CBCGPVisualManager2022::m_bTabsRoundedCorners to FALSE.
    3. A new virtual method called CBCGPVisualManager::GetToolBarCustomizeButtonStyle specifies the default style of the toolbar customization button.
    4. CBCGPWinXPVisualManager (Windows native theme): the appearance of many controls, such as Ribbon buttons under Windows 11, was improved (see screenshot). The controls now feature rounded corners and colors that resemble the Fluent UI.
  10. Grid and Report Controls
    1. CBCGPGridItem: added a new virtual method GetComboInitialSelectedItem, which is called when a combo box opens a drop-down list. Override this method to customize which item is to be initially selected in the opened drop-down list.
    2. CBCGPGridCache: CleanUpCache method has a new, optional parameter, 'nId,' which specifies a row to be cleaned up. If this parameter is -1 (default), all cached rows will be cleaned.
    3. CBCGPGridCtrl: a new method SetExplorerStyleExpandingBox allows you to customize the grid row expanding box appearance (see screenshot).
  11. Controls
    1. A new class, CBCGPStepProgressBarCtrl, implements the step progress bar (see screenshot). The control visually displays the progress of the multi-step process. This component includes:
      • Completed steps.
      • The current (active) step.
      • Pending steps.
      • Progress line of the current step.
      Each step is represented as a circle with an optional icon, header and footer. The control can be created with horizontal and vertical layouts. Our BCGPControls example demonstrates the new component usage.
    2. CBCGPTabWnd has the following improvements and enhancements:
      • The TabsDocumentsMenuStyle enumerator has a new member, TAB_DOCUMENTS_MENU_VISUAL_THEME, which means that the documents menu button style is specified by the active visual manager.
      • Flexible truncated tabs (see screenshot). If the tabs are truncated and a new method, SetFlexibleTruncatedTabs, is called, then the rightmost tab is aligned with the right control edge.
      • Implemented the ability to automatically inverse the tab background colors in dark visual themes (see screenshot). Call a new method SetAutoInverseAutoColorsInDarkTheme to enable or disable the colors' auto-inversion. For the MDI tabbed groups, you can enable this feature by setting a new member of the CBCGPMDITabParams class, 'm_bAutoInverseAutoColorsInDarkTheme,' to TRUE.
    3. The CBCGPButton class has the following additions:
      • The tooltip now includes a button icon, as shown in screenshot. The SetTooltip method has a new optional parameter, bDrawIcon. Set this parameter to TRUE if you wish to display a control icon on the tooltip.
      • Auto-repeat with acceleration. The SetAutorepeatMode method now allows specifying the autorepeat acceleration ratio by setting a new parameter, nAutoRepeatAccelerationRatio (0 by default).
      Please look at the BCGPControls example ("Push button" view) to see these additions in action.
    4. CBCGPTabCtrl: a new attribute m_bUseParentBackground (FALSE by default) specifies whether the tab control background has the same color as a parent window background (see screenshot). The TabControl sample ("Themed Window control" dialog) demonstrates this new feature.
    5. CBCGPComboBox: added support for the selection bar in the dropped-down list item (see screenshot). By default, this bar is drawn only in the Office 2021-2024 and Native Windows themes, but you can specify this bar visibility by calling a new method, SetSelectionBarInDropDown (for the specific control), or by changing a new global class member, m_bSelectionBarInDropDown (for all controls).
    6. CBCGPComboBox: added drop-down list auto-width support. When this option is on, the width of the drop-down list is specified by the widest item. Call the new method SetDropDownAutoWidth to enable or disable this option for the specific control, or modify the global class member m_bDropDownAutoWidth (FALSE by default).
    7. The CBCGPExpanderCtrl has been significantly enhanced. The following new and updated features are introduced in this version:
      • Multi-dialog group: you can now add the number of dialogs to the same group; please call the new method AddDialogToGroup to add a new dialog to the existing group.
      • The dialogs delayed loading: call a new method AddDelayedGroup and the new empty group will be created in a collapsed state. This should be populated in the overridden OnSetupDelayedGroup method (called when the user expands the group).
      • A new method ReloadDialogs reloads all previously loaded dialogs.
      • Implemented 2 styles of the expander: Windows and Office (see screenshot). Please call the new method SetStyle to modify the control style.
      • The new method SetDialogBackgroundColor allows you to modify the dialog's background color.
      • The new access method GetDialog allows you to obtain data from the specific dialog.
      Please take a look at the BCGPMSOfficeDemo example (new pane "Format Text," see screenshot) and ExpanderCtrlDemo sample to see these new features in action.
  12. Graphics Manager
    1. A new class, CBCGPImageList, simplifies usage of the image lists in the graphics managers.
    2. CBCGPGraphicsManager: added a new method DrawTab for the rendering tabs with the rounded corners.
    3. Implemented RTL (right-to-left) mode support. Call a new method CBCGPGraphicsManager::SetRightToLeftMode to enable or disable right-to-left mode in the graphics manager.
  13. Miscellaneous
    1. A new helper class, CBCGPResourceLoader, simplifies the loading of the resource data (such as texts, images, and others). Please take a look at our BCGPVisualStudioGUIDemo example, where the advanced editor demonstration code is loaded from the resources using this new class.
    2. CBCGPContextMenuManager: a new method SetPopupMenuRTC allows you to specify a runtime class for the popup menu (derived from the CBCGPPopupMenu class). GetPopupMenuRTC returns the runtime class for the popup menu specified by SetPopupMenuRTC, or NULL if the default class is being used.
    3. The migration process from the MFC codebase has been simplified: a new header file named BCGPMFCMigrate.h translates names from the MFC to their corresponding names in BCGControlBar Pro for MFC.
  14. Examples and Samples
    1. BCGPControls: added demonstration of the new Step Progress control, push button tooltip with icon, extended tree control expand button style, and color dialog start page.
    2. BCGPDigitalDashboard and BCGPGaugesDemo: added demonstration of the new Push Button gauge.
    3. BCGPMSOfficeDemo: demonstrates now how to create an MS Office-like Format pane using the expander control with dynamic panes, show/hide the ribbon palette scroll buttons upon visual theme changing, and load the start page using the new resource loader.
    4. BCGPVisualStudioGUIDemo: added future VS 2026 visual theme demonstration.
    5. BCGPGridExample: the grid custom item with a drop-down list has been fully revised (see screenshot).
    6. ExpanderCtrlDemo: added demonstration of the dynamically created pages and how to change the style of the expander control.
    7. MDITabsDemo: added a demonstration of the auto-inverse colors in dark themes and toggling the active tab's bold font.
    8. The ToolbarCustomizeDemo now includes a demonstration of how to change the appearance of the toolbar customize (options) button and how to enable or disable the toolbar quick customization menu at runtime.
    9. The TabControl now includes a demonstration of flexible truncated tabs, automatic inverse colors for dark themes, and the use of the parent window's background in the themed tab control.
    10. The TasksPane demonstrates now how to add the dialog dynamically to the existing task pane group at runtime.
    11. In all of our examples and samples where the demonstration code for the advanced edit control is loaded from the application resources, a new class, CBCGPResourceLoader, is being used now.
  15. Fixes
    1. CBCGPTranslateManager: addressed the issue with ignoring the 'bAdd' parameter in the SetTranslationBuffer method.
    2. CBCGPGraphicsManagerGdiPlus: resolved an issue in the drawing methods related to non-normalized rectangles.
    3. Addressed many issues in the RTL (right-to-left) support:
      • Fixed incorrect text rendering in the Direct2D and GDI+ graphics managers.
      • Fixed the unexpected horizontal flipping of the icons located on the ribbon, toolbar, and other controls.
      • Corrected right arrow icons drawn on the menu buttons.
      • Fixed incorrect behavior in the transition between pages in the CBCGPPageTransitionManager class.
      • The content of the digital numeric indicator is not horizontally flipped anymore in the RTL mode.
      • Resolved problems with incorrect hit testing in the interactive gauges in the RTL mode.
    4. CBCGPToolbarComboBoxButton: addressed the issue with the unexpected display of the internal combo box window in some specific cases.
    5. CBCGPRibbonButton: addressed the issue of incorrect horizontal offset in the second-level items of the dropped-down menu in certain specific cases.
    6. The GetPaneInfo method in CBCGPMDIChildWnd, which is called from the Windows Navigator, now correctly retrieves information for MDI children that are created from the docking panes.
    7. The IsReadOnly method in CBCGPMDIChildWnd returns TRUE now for MDI children that are created from the docking panes. This fixes the issue with the unexpectedly enabled "Save" button in the "Windows" dialog when this MDI child window is selected.
    8. CBCGPTaskDialog: resolved the issue of incorrect main text width that occurred in certain specific cases.
    9. CBCGPTaskPaneMiniFrameWnd: resolved some issues with incorrectly positioned caption buttons in certain cases.
    10. CBCGPEditCtrl: addressed an issue with non-contrast outlining markers in some visual themes.
    11. CBCGPGridCtrl: addressed an issue with incorrect hit-testing in the virtual mode when the grid has the frozen rows.
    12. CBCGPPropertySheet: addressed the dialog layout issues in some specific cases on startup.