Release Notes BCGControlBar Professional Edition Version: 36.2. Released: 05/06/2025 Ribbon Bar CBCGPRibbonStatusBar: FindByID and FindElement methods have a new optional parameter, "bIncludeGroups" (FALSE by default). CBCGPRibbonStatusBarPane: added support for the SVG list used for the animation. CBCGPRibbonBackstageViewPanel: a new method SetFocusToActiveView moves the keyboard focus to the currently active (selected) right-side view. Dialogs and Forms A new global variable, globalData.m_nAutoSubclassDlgItems, specifies which controls will be automatically subclassed. By default, it specifies all control types except BCGP_SUBCLASS_LISTBOX, BCGP_SUBCLASS_TREECTRL, and BCGP_SUBCLASS_LISTCTRL (the same behavior as in previous versions). A new class, CBCGPExpanderCtrl, implements a container of the vertically stacked collapsible dialogs (see screenshot). You can see all dialogs at the same time or collapse some of them. Please look at our new sample application, ExpanderCtrlDemo, to see this component in action. Tasks Pane and Toolbox CBCGPTasksPane: implemented task tooltip support; call the new method EnableTaskTooltips to enable tooltips. By default, the tooltip content will be retrieved from the string resource (with the task ID), but you can specify the custom tooltip and description by calling a new method, SetTaskToolTip. The TasksPane sample application demonstrates this new feature. CBCGPTasksGroup constructor and CBCGPTasksPane::AddGroup method: a new optional parameter, bAutoDestroyIcon, specifies whether the task group icon should be automatically destroyed. By default, this parameter is FALSE. CBCGPTasksPane: a new method SetGroupIcon allows you to modify the icon for an existing task group at runtime. Visual container and Visual Designer A new class, CBCGPVisualContainerView, simplifies usage of the visual container in applications with the MFC document/view support. Please look at our ViewsDemo sample application to learn how to use this new class. In addition, this class has been added to the AppWizard views list, so you can create a basic digital dashboard application in seconds. CBCGPVisualContainer: improved visual manager theme support; the EnableVisualManagerTheme method has a new, optional parameter, "bDeep," which specifies whether the visual manager theme should be recursively applied to all container objects, such as gauges. Visual Manager and Themes Improved appearance of the underline and pointer style tabs in some visual themes. CBCGPVisualManager: a new method OnDrawExpanderGroupCaption is a virtual method for drawing the caption of an expander control group. CBCGPVisualManager: the following new methods specify the edit control outline button appearance: GetEditCtrlOutlineButtonStyle GetEditOutlineButtonColor Grid and Report Controls CBCGPReportCtrl: added markup (hyperlinks) support for the preview row (see screenshot). To enable row preview markup, please pass TRUE to the new parameter bEnableMarkup of the CBCGPReportRow::SetDescription method. To handle the hyperlink click event, override the OnClickRowDescriptionLink method in your CBCGPReportCtrl-derived class, or add the BCGM_REPORT_PREVIEW_LINK_CLICK registered message handler to the report control owner window. The BCGPGridExample application ("Report Control" view) demonstrates this new feature. CBCGPGridCheckItem: the CheckBoxMode enumeration now includes the RadioButton mode (see screenshot). The radio buttons' logic should be implemented in the app code, as the item with this mode works like the CheckBox and Switch items. Please look at the BCGPGridExample application to see this new feature in action. CBCGPGridCtrl: significantly improved grid control performance; the item positions are cached now, so the access time to the items is dramatically reduced. If for some reason this change affects your existing code (for example, you are directly changing the grid items in your CBCGPGridCtrl-derived class), you can disable this optimization by calling a new method, EnableOptimizedIndexing, with parameter FALSE. CBCGPGridCtrl: implemented clicking on the multiple check boxes behavior; a new class method SetCheckBoxToggleBehavior specifies how to check/uncheck selected items: ToggleOne: only the clicked check box will be changed. ToggleAllSelectedAsClicked: all selected check boxes will have the same state as the clicked check box. ToggleAllSelected: all selected check boxes will be toggled. CBCGPGridCtrl: the grid column chooser can be resizable now (see screenshot). To enable this feature, please call a new method, ShowColumnsChooserEx, with the parameter bResizable = TRUE. The BCGPGridExample application ("Report Control" view) demonstrates this new feature. Controls CBCGPCalendar: enhanced the multiple-date selection support. The following new methods were added to this class: GetDateEx: returns the first or last selected date. GetFocusedDate: returns the focused date. SetShiftSelectionOnMonthChange: specifies whether the selected dates should be shifted upon a month change. CBCGPColorBar: the following new methods allow improving the appearance of the color bar control created on the dialog: SetCenterHorz: specifies whether the color cells should be horizontally centered. SetDPIAwareCtrl: specifies whether the control is DPI-aware. CreatePalette's static method is now public. Using this method, you can easily create the Windows palette from the colors array. CBCGPMenuButton: a new attribute, m_bPostCommand, specifies whether the control calls PostMessage instead of SendMessage for notifying the WM_COMMAND. CBCGPPropList now supports custom colors for selected groups and items (see screenshot). SetSelectedItemColors and SetSelectedGroupColors methods were added to this class. The BCGPControls example demonstrates this addition. Graphics Manager CBCGPGraphicsManagerHelper: added DWM (Aero) support. A new member of this class, m_bOnGlass, specifies whether the content is being painted on the DWM area. Added CompareWith method to CBCGPPolygonGeometry, CBCGPComplexGeometry, CBCGPLineSegment, CBCGPBezierSegment, and CBCGPArcSegment classes. Using this method may help reuse existing graphics objects and reduce memory and resource usage. CBCGPSVGImage: a new method Compare allows you to check whether two SVGs have the same content. CBCGPSVGImage: a new global flag m_bOptimizeShadowEffect (TRUE by default) specifies whether shadow effects defined by a combination of the basic filters, such as feOffset, feGaussianBlur, and feFlood, are automatically converted to the feDropShadow effect. MSAA and CodedUI Tests CBCGPRibbonBar: improved accessibility support for hierarchical controls, such as split buttons. To enable this feature, please pass BCGP_RIBBON_ACCESSIBILITY_PANEL_HIERARCHY to the new parameter nFlags of the EnableSingleLevelAccessibilityMode method. CBCGPToolBar: enhanced accessibility support for embedded toolbar controls such as combo boxes. CBCGPPlannerManagerCtrl: a new method SetAccessibilityFlags allows you to specify the accessibility behavior for the planner objects. Miscellaneous Improved GDI drawing performance. Improved appearance of the Link and Tool icons: these icons are SVG-based and look good in both dark and light themes (see screenshot). CBCGPMultiViewFrameWnd additions: We implemented the creation of views on demand. A new member of the CBCGPMultiViewsCollection class, m_bCreateViewOnDemand, specifies whether a view window should be created on demand (for example, when a user clicks a view name on the navigation tree). If this member is FALSE (by default), all views will be created on startup. A new virtual method CBCGPMultiViewFrameWnd::OnCreateViewFailed is called by the framework when the view initialization fails. CBCGPEditCtrl: added outline button styles (see screenshot). Call the new method SetOutlineButtonStyle to specify the button's style and GetOutlineButtonStyle to obtain it. BCGPVisualStudioGUIDemo and BCGPOrganizer examples and MDIEditorDemo sample demonstrate this addition. CBCGPWinUITiles additions: A new global member, CBCGPWinUITiles::m_bUseLargeHeaderFonts, specifies whether the tile header is drawn with a larger font. If this member is FALSE, the font size of the tile header is the same as the font size of the tile text. A new method SetAlwaysDrawTextOnRight specifies whether the tile header and text will always be drawn to the right of the tile image; if there is not enough space to display the whole text, the text will be truncated. A new method SetTileInternalPadding specifies the tile internal padding. Please look at the BCGPControls example (group of the features; see screenshot) to see these additions in action. CBCGPWinUITilesView: added print/print preview support to this class. Examples and Samples BCGPControls: added demonstration of selected property custom colors and enabling/disabling shifting selected dates upon month change. BCGPGridExample: added demonstration of the resizable column chooser, report preview row markup (hyperlinks), and grid items with radio button style. BCGPOrganizer and BCGPVisualStudioGUIDemo: added demonstration of the editor outline button styles. A new sample ExpanderCtrlDemo demonstrates the new component CBCGPExpanderCtrl's usage. RibbonGadgets: added demonstration of the Ribbon status bar features. TasksPane: added task pane tooltip demonstration. ViewsDemo: added CBCGPVisualContainerView class usage demonstration. BCGPDigitalDashboard: improved the layout of gauges on the visual container during resizing. Fixes CBCGPDateTimeCtrl: the issue with the non-contrast foreground color of the disabled control in some visual themes has been resolved. CBCGPShellManager: the IsCompressedFolder method returns TRUE now for .tar and other archive types. This fixes a bug with incorrect archive file double-click behavior in the themed file dialog. CBCGPImageEditDlg: addressed some control layout issues after the DPI change. CBCGPGroup: addressed control flickering when the group box contains a check box or radio button. CBCGPBaseVisualCtrl: addressed issue with drawing control content on the DWM (Aero) area. CBCGPGraphicsManagerD2D: fixed incorrect drawing of lines that have a dash style with dots and a flat cap style. CBCGPSVGImage: addressed issue with incorrect filter appearance on the exported 32bpp bitmap or icon. CBCGPRibbonTreeCtrl: addressed the issue with incorrect tree item height after DPI changes (Ribbon and QAT customization dialogs). CBCGPRibbonBar: the ribbon start page is always focused on startup now. CBCGPRibbonBackstagePagePrint: We have resolved a few minor issues, including activating and deactivating the Next Page and Prev Page buttons, as well as unnecessary frames around the empty preview page. CBCGPVisualContainer: addressed some issues with incorrect scrolling behavior. CBCGPTasksPane: resolved the issue of incorrect page activation when selecting a page from the history menu. CBCGPGridCtrl: fixed bug with incorrect tapping on the check box on the touch screens in the multiple-selection mode. CBCGPCircularGaugeImpl and CBCGPLinearGaugeImpl: the level bars specified in the Visual Designer are loaded correctly now. CBCGPLinearGaugeImpl: fixed dynamic elements Z-order - the pointers are drawn on top of the level bars now. CBCGPSliderCtrl: addressed issue with unnecessary appearance of the focused rectangle upon zoom button clicking. This rectangle should appear only as a result of the activation by the keyboard.