Skip Navigation LinksBCGSoft > Release Notes > Version Release Notes

Release Notes

BCGControlBar Professional Edition

Version: 37.3. Released: 02/18/2026

  1. Ribbon Bar
    1. When the ribbon bar is in the simplified mode, all application popup menus are displayed now with the same (enlarged) item height. This makes the popup menu's appearance consistent across the application.
    2. CBCGPRibbonRecentFilesList: the class constructor has a new, optional parameter, bSimplifiedModeExtraHeight (TRUE by default). Set this parameter to FALSE if you need to display the recent file names without extra height.
    3. CBCGPRibbonSlider: improved keyboard processing support.
    4. CBCGPRibbonPaletteButton: a new attribute AutoSyncSelection specifies whether the selected gallery item should be synchronized with other galleries with the same ID. The SetAutoSyncSelection and IsAutoSyncSelection methods were added to this class.
    5. CBCGPRibbonCustomizationOptions: a new member, m_bCustomizationFileUTF8 (TRUE by default), specifies whether the ribbon customization data file is saved in UTF-8 character encoding. To load data saved in the current product version within applications built using the previous product version, you must set this member to FALSE, which will save the data file in ANSI character encoding.
  2. Toolbars and Menus
    1. CBCGPToolBar: added method DisplayControlContentDialog, which displays an automatically created dialog box with embedded toolbar control (e.g., combo box or edit box). The Slider, ToolbarDateTimePicker, and ToolbarEditBox samples demonstrate this new feature.
    2. The method CBCGPMenuBar::GetMenuFont has a new, optional parameter, pWnd. Needed for obtaining the menu font for the given DPI. If this parameter is NULL (by default), the menu font for the default system DPI will be returned.
  3. Dialogs and Forms
    1. Implemented the ability to add user-defined data to the pop-up dialog (CBCGPMenuButton, CBCGPRibbonButton, CBCGPGridPopupDlgItem, and CBCGPEdit classes): EnablePopupDialog methods have a new, optional parameter, "lpUserData." Please look at our BCGPControls example ("Push Buttons" view), where we demonstrate how to utilize the user data in the menu button with a popup dialog.
    2. Enhanced global events handling of the modeless dialogs and property sheets: now all of these dialogs are properly updated when the global application settings, such as visual theme or UI language, are being changed. In the previous product versions, the developer needed to handle these events in the application code.
  4. Docking Panes
    1. Added the luminosity auto-inversion for the docking pane icons in the dark themes (see screenshot): the frames method SetDockingBarsIconList has a new, optional parameter, bAutoInverseLuminosity.
    2. CBCGPDockingControlBar: simplified the embedded control handling. Instead of setting the embedded control position and size inside the docking control bar WM_SIZE message handler, simply call a new class method SetEmbedded, and the child control will be automatically resized. A new virtual method, CBCGPDockingControlBar::GetEmbeddedWndRect, allows specifying a custom location and size of the embedded control. In addition, when the docking control bar become focused, the focus will be moved to the embedded control.
  5. Chart Control
    1. The following new chart formulas have been added:
      • CBCGPChartMinFormula: the period's minimal value.
      • CBCGPChartMaxFormula: the period's maximal value.
      • CBCGPChartStockATRFormula - the period ATR (Average True Range) value (the stock charts only).
      • CBCGPChartStockATRBandsFormula - the period ATR bands for the Open, High, Low, Close, and HighLow series (the stock charts only).
    2. CBCGPChartAdvancedFormula has a new attribute, LagOnPast (FALSE by default; the SetLagOnPast and IsLagOnPast methods were added). If this attribute is TRUE, the values are calculated only after the specified period.
    3. CBCGPBaseChartStockSeries has the following additions:
      • GetTrueRange: needed for the ATR (Average True Range) calculation.
      • HasStockData: this tells whether the stock data or the stock series data points are used.
  6. Visual Manager and Themes
    1. A new global flag, globalData.m_bUseAccentColorInActiveWindowBorder, specifies whether the active window border will always be drawn with the accent color. If this parameter is FALSE, the "Show accent color on title bars and window borders" Windows flag will be honored.
    2. CBCGPListBox: improved appearance of the focused rectangle in some visual themes.
    3. The modern visual managers, such as Office 2024-like and Visual Studio 2026-like, have full-height tabs now (see screenshot). There is no gap between the tab top/bottom edge and the tab area bounds.
    4. The Visual Studio 2026-like visual manager now includes implemented color themes for both the circular and linear gauges, as well as the numeric indicator (see screenshot).
    5. Office 2021-2024 visual theme: the highlighted toolbar split buttons have a bounding border now (like MS Office 2024 highlighted ribbon split button, see screenshot).
    6. Improved appearance of the Visual Studio 2026 theme: the tabs, tooltips, docking pane captions, scroll bars and other controls are now looking identical to the VS 2026 UI. In addition, we made the better appearance of the ribbon controls in this visual theme.
  7. Grid and Report Controls
    1. CBCGPGridCtrl: implemented the grid row state icons, as shown in screenshot.
      • The The CBCGPGridRow class has two new methods: SetStateImage and GetStateImage.
      • The new methods in the CBCGPGridCtrl class, SetStateImageList and GetStateImageList, allow you to specify and retrieve the state images.
      Please look at our BCGPGridExample application to see this new feature in action.
    2. CBCGPGridHeaderParams: added a new member, m_rectText, that specifies a text label drawing area.
  8. Calendar and Planner
    1. The appearance and behavior of the planner control are now more similar to the latest versions of Outlook.
    2. CBCGPPlannerManagerCtrl: a new member variable m_bAutoChangeViewTypeOnClick (which has a default value of TRUE) specifies whether clicking the day caption changes the view type. For example, clicking the day caption in the month view switches to the day view with the clicked day.
  9. Property Grid Control
    1. CBCGPFontProp now serializes the color along with the font. If the user changes the color in the Font dialog, copies the property and pastes it to another property, the color will also be pasted.
    2. CBCGPPropList::SetDescriptionRows method has a new, optional parameter, bResetHeight (by default, FALSE). Setting this parameter to TRUE resets the description area height to the default.
    3. A proportional resizing of the columns has been implemented: when this feature is enabled by calling the new method CBCGPPropList::EnableProportionalColumnResizing, and the column width will change proportionally as the property grid is horizontally resized. In the previous versions, the columns always had the same width after resizing. Please look at our example BCGPControls to see this addition in action.
    4. Implemented explorer-style group buttons (see screenshot). Call the new method CBCGPPropList::SetExplorerStyleExpandingBox to enable or disable this feature.
    5. CBCGPProp has a new, virtual method, OnParentGroupChecked. This method is called by the framework when the user clicks the parent group check box. By default, the property grid item is enabled or disabled according to the parent group checkbox state. Override this method to perform some custom actions upon clicking a group checkbox.
    6. CBCGPProp::GetSubItemsCount method has a new, optional parameter 'bVisibleOnly' (FALSE by default). If this parameter is TRUE, the method returns a number of the visible (not hidden) subitems.
    7. CBCGPProp::GetSubItem method has a new, optional parameter, 'bSkipHidden' (FALSE by default). If this parameter is TRUE, the index is treated as the index in the visible subitems array.
    8. CBCGPPropertyManager: a new property style attribute "hidden" has been implemented; specify it if you need to create an initially hidden property. By default, all properties created by the property manager are visible.
    9. Improved custom (user-defined) tooltips support (see screenshot):
      • The custom tooltips are themed now.
      • Implemented tooltip descriptions (messages): GetNameTooltipDescription and GetValueTooltipDescription methods were added to the CBCGPProp class.
      • The developer may specify the property tooltips not only by overriding CBCGPProp methods such as GetNameTooltip or GetValueTooltip; the new virtual methods GetPropertyToolTip and GetPropertyToolTipDescription were added to the CBCGPPropList class.
  10. Controls
    1. CBCGPHeaderCtrl: implemented the ability to enable or disable item highlighting during mouse tracking. The new methods EnableItemsHighlighting and IsItemsHighlightingEnabled were added to this class.
    2. The slider control zoom buttons are DPI-aware now.
    3. CBCGPTreeCtrlEx: implemented state icons support (see screenshot). Please look at BCGPControls example to see this addition in action.
    4. CBCGPSwitchImpl: improved control appearance in the various styles (see screenshot).
  11. Shell Management
    1. CBCGPEdit: implemented a themed shell autocomplete dropdown list (see screenshot). To enable this feature, you can either set a new global flag, globalData.bShellAutoCompleteThemed, to TRUE (affects all themed edit controls in the application) or call the new method CBCGPEdit::EnableShellAutoComplete.
    2. Improved DPI support for the shell system icons: the framework now uses shell icons with an appropriate size matched to the current DPI. This addition makes the shell controls, such as the shell list, tree or breadcrumb, fully DPI-aware.
    3. CBCGPShellList: implemented the maximum number of the list items. Call the new class method SetMaxItems to specify this limit and GetMaxItems to obtain it. By default, the number of the items is unlimited.
    4. CBCGPShellTree: improved mechanism of the tree item height calculation, especially upon the DPI changing.
  12. Graphics Manager
    1. CBCGPSVGImageList: added a new method, ExportToImageList, that creates a Windows image list with a given icon size.
    2. CBCGPSVGImage: implemented 'dominant-baseline' attribute support.
    3. CBCGPImage: implemented image grayscaling (see screenshot). Call the method ConvertToGrayScale to draw the image in gray. GraphicsManagerDemo sample application demonstrates this addition.
    4. CBCGPSVGImage: improved CSS-like style support. Added support for the "font" style and multiline comments inside the "style" block.
  13. MSAA and CodedUI Tests
    1. Enhanced accessibility support in the power color picker control (CBCGPColorPickerCtrl class).
    2. Frame and dialog owner-draw captions: implemented MSAA support for the caption buttons.
    3. If a toolbar button does not have a name or corresponding tooltip located in the resources, the custom tooltip text (returned by the overridden CBCGPToolBar::OnUserToolTip method) will be used as the accessibility name.
  14. Edit Control
    1. CBCGPEditView: a new class member m_bDPIAware (FALSE) by default specifies whether the edit control is DPI-aware.
    2. Implemented the current (focused) line highlighting (see screenshot). When the current line highlighting is enabled, the row is outlined by the bounding rectangle, and, in some visual themes, the row number is displayed with a special color. Call the new CBCGPEditCtrl method EnableHighlightCurrentLine to enable or disable this feature. Our example, BCGPVisualStudioGUIDemo, demonstrates this functionality.
  15. Miscellaneous
    1. libpng has been upgraded to the latest version (1.6.54).
    2. CBCGPInternalScrollBarWrapper: a new method, GetScrollBarTrackPos, allows one to obtain the thumb tracking position in the derived classes, such as CBCGPScrollView.
    3. A new, registered message BCGM_ONPROCESSKEYBOARDACCELERATOR is sent to the active frame window upon processing the keyboard accelerator. Add this message handler to the frame window to implement custom processing for keyboard accelerators. For example, if the command is associated with one of the toolbar controls, such as a combo box, you can display the corresponding dialog.
    4. CBCGPMDIFrameWnd: a new method GetMDIChildren obtains a list of CBCGPMDIChildWnd objects. The optional parameter bIncludeDetached (TRUE by default) specifies whether the MDI child windows from the detached MDI frames should be added to the result list.
    5. The themed frame and dialog captions now include tooltips for both standard and custom buttons (see screenshot). By default, these tooltips are enabled, but developers can disable or enable them by calling a new method, EnableCaptionButtonsTooltip (added to the CBCGPDialog, CBCGPPropertySheet, CBCGPFrameWnd and CBCGPMDIFrameWnd classes).
    6. The Ribbon Designer and SVG Sprite Generator: the color picker for the font-based icons includes the recommended colors group (see screenshot). These colors are nicely inverted in the dark application modes, so we recommend always using them. In addition, we have corrected all AppWizard-generated SVG font-based icon lists to make them dark theme-aware (the same recommended colors are being used in these lists).
  16. Examples and Samples
    1. BCGPControls: introduced a demo of the new and improved features, like the ability to resize columns in the property grid proportionally, user-defined data in the menu button popup dialog, the expanded tree control state icons, and the themed shell auto-complete list for the edit box.
    2. BCGPVisualStudioGUIDemo: added a custom VS 2026 Light Blue theme (see screenshot), demonstrated how to highlight the current line in the editor, and demonstrated the state icons in the tree control.
    3. BCGPGridExample: added the grid row state icons demonstration.
    4. The Slider, ToolbarDateTimePicker, and ToolbarEditBox samples demonstrate how to display the dialog for the toolbar control content during keyboard accelerator processing.
    5. BCGPChartExample: added new formulas to the stock chart views. We demonstrate now how to add the Lowest Low Value (LLV) and Highest High Value (HHV) lines and ATR Bands (HighLow and Close series).
    6. GraphicsManagerDemo: added image grayscaling and changing luminosity demonstrations.
    7. BCGPOutlookDemo: old-fashioned PNG icons were replaced with modern, dark-theme-aware SVGs. In addition, Visual Studio 2026 visual themes have been added to this demo application. The result is a good example of how you can dramatically modernize your existing application's appearance with minimal effort (see screenshot).
  17. Fixes
    1. The issue with the message box's incorrect parent frame has been addressed; now, when AfxMessageBox is called while the MDI detached window is active, the message box will display in the correct location. In the previous product versions, the message box was always displayed on the main application frame instead of the active MDI torn-off frame.
    2. CBCGPLightBoxDialog: addressed the issue with the incorrect caption bar height after DPI changed.
    3. Ribbon QAT: the unnecessary (contiguous) separators are not displayed anymore on the QAT.
    4. CBCGPMDIFrameWnd: addressed the issue with the unexpected destruction of the shared menu in the detached MDI frame.
    5. CBCGPCircularGaugeImpl: addressed some issues with incorrect hit testing of the pointer in the interactive mode in case the pointer shape covers the gauge center point and the user clicks the "opposite" side of the pointer.
    6. CBCGPGridCtrl: If the user double-clicks the row checkbox, the grid item in-place editing does not start anymore.
    7. CBCGPTreeCtrlEx: addressed issue with non-specified lParam value in the tree item data prepared for the WM_NOTIFY message.
    8. CBCGPPropList: Ctrl+Enter adds a new text line now in the multiline text property in-place editor.
    9. CBCGPPropList: addressed some minor issues related to the vertical resizing of the description and command areas located at the bottom of the control.
    10. CBCGPGraphicsManagerD2D: addressed several image transparency issues that occurred when CBCGPImage preprocessing was required, such as when the image's luminosity or color theme was changed.
    11. CBCGPWorkspace: fixed a bug that caused an incorrect restored position when the maximized frame was previously closed on a secondary monitor with a DPI different from that of the primary monitor.
    12. Designers and editors: addressed the issue with the incorrect parsing of the Visual Studio 2026 project files.
    13. CBCGPChartVisualObject: addressed some issues with rebuilding the chart after DPI changing.
    14. CBCGPExplorerToolBar: addressed the issue with incorrect control layout after the DPI change.
    15. Significantly improved Windows accent color support in the corresponding visual themes (where the Windows accent color is used to render highlighted parts, such as the Office 2016-2024 colorful themes). After the accent color change, the UI is updated much faster without 1-2 second delay that the user may encounter in the previous versions.
    16. CBCGPVisualContainer: addressed some issues with the incorrectly loaded state of the disabled or invisible edit box and grid components created in the Visual Designer.
    17. CBCGPMDIFrameWnd: addressed issue with double-adding some "Windows" menu items (like "Windows…" or recent file) in the explorer style context menu.
    18. CBCGPPropList: addressed some issues with the hidden subitems in the values list; in the previous product versions the hidden items were included in the values list's root property, and users were allowed to edit them.
    19. The issue with redrawing control info tips on the resizable dialogs and forms with the enabled control layout has been addressed.
    20. CBCGPSVGImage: addressed the issue with unexpected text color inversion in the dark themes in some specific cases. This bug affected the rendering of the glyph (font-based) SVG icons in the dark modes.