Skip Navigation LinksBCGSoft > Release Notes > Version Release Notes

Release Notes

BCGControlBar Professional Edition

Version: 33.4. Released: 2/14/2023
  1. Added Windows 11 Mica material support. This feature is available for the frames with non-themed (standard) non-client area (e.g., Windows Native, Office 2010 or Scenic visual themes). You do not have to make any changes in your source code - the appearance will be automatically applied to the following UI areas:
    • Ribbon bar caption and tabs area (see screenshot)
    • Dialog boxes with aero area (please take a look at SkinnedDialog sample where transparent area has this effect - see screenshot).
    • Explorer toolbar (see screenshot).
    • Property sheet "Aero Wizard" mode (see screenshot).

    In addition, BCGCBProDwmExtendFrameIntoClientArea and globalData.DwmExtendFrameIntoClientArea methods have a new, optional parameter nSystemBackdropType - set it to non-zero to apply the mica effect to your window.

  2. Implemented the Microsoft Edge WebView2 support: a new class CBCGPWebView2Ctrl allows you to use the latest web technologies in your application with few lines of code! To see how to use this new control, please take a look at our examples BCGPEdgeDemo and BCGPInternetExplorerDemo (yes, we demonstrate how to combine a new control with classic IE look and feel!).

  3. Ribbon Bar
    1. CBCGPRibbonBar: method GetElementsByID has a new, optional parameter 'bIncludeActivePopup' (specifies whether Ribbon control located on the active popup panel should be added to search results).
    2. CBCGPRibbonLabel: a new, optional parameter nID was added to the class constructor, so you will be able to access this Ribbon control by ID and modify it.
    3. CBCGPRibbonSlider: added slider progress mode (see screenshot). Call a new method EnableProgressMode to enable/disable this mode. Please take a look at RibbonGadgets sample to see this feature in action.
    4. Ribbon Designer: added "Preserve Elements Order" flag in the Ribbon panel options (by default, the Ribbon controls layout is optimized by the framework, but now you can disable this optimization and keep an original order).
    5. Ribbon QAT customize page: you may display custom (created on the Ribbon Customize page) tabs (categories) in the Categories combo box. To enable this feature, please set a new parameter bDisplayCustomTabsInQATPage of CBCGPRibbonCustomize to TRUE or call new method CBCGPRibbonCustomizeQATPage:: SetDisplayCustomTabs.

  4. Toolbars and Menus
    1. CBCGPToolbarOptions: added a new member m_lstCustomizePages which contains a list of classes of the custom (user-defined) pages that will be added to customization property sheet.
    2. CBCGPToolbarCustomize: added 2 new flags BCGCUSTOMIZE_RESIZABLE (create resizable toolbar customization property sheet) and BCGCUSTOMIZE_LOAD_PLACEMENT (load recent position and size of toolbar customization property sheet, used only if BCGCUSTOMIZE_RESIZABLE is specified). Please take a look at new sample ToolbarCustomizeDemo to see this feature in action.
    3. CBCGPToolbarSlider: improved control appearance on the toolbar customization dialog.

  5. Dialogs and Forms
    1. BCGPMessageBox: improved dialog appearance when caption width exceeds the screen size. In addition, a new global variable CBCGPMessageBox:: m_nLimitCaptionWidth allows to limit dialog width in case of very long caption text. E.g., if you set this variable to 70, the caption width will be limited by 70 percent of the screen width.
    2. CBCGPStaticLayout: implemented ability to disable layout with incorrect (non-existing) controls. If upon adding anchor the layout manager cannot find control with specified ID, the layout is disabled for this window. Call new method DisableOnAddAnchorError to enable this new feature.

  6. Visual Manager and Themes
    1. CBCGPTagCloud: improved tag foreground color in some visual themes.
    2. Toolbar and Ribbon button borders are DPI-aware now. For example, if you run your application on 200% DPI scaling monitor, you will see double borders around the checked buttons.

  7. Grid and Report Controls
    1. Improved appearance of the disabled grid control: all texts inside the grid are drawn using special gray foreground color. You may enable this feature by calling a new method CBCGPGridCtrl::SetDisabledTextColor.
    2. Implemented SVG icons support for the header and cell grid icons.
    3. CBCGPTreeCtrlEx: implemented ability to tune GetNextItem method behavior (when control filter bar is displayed). Call new method SetFilterBarGetNextItemOption(TRUE) to skip hidden items.
    4. CBCGPTreeCtrlEx: a new method GetColumnValue allows to retrieve the value from a tree item in the specific column.
    5. CBCGPGridItem: added horizontal align support (see screenshot). Please call new method SetHorzAlign to specify the horizontal alignment and GetHorzAlign to obtain it. Please take a look at BCGPGridExample application (new "Formatted Grid" view) to see this new feature in action.
    6. Improved Grid zooming in/zooming out behavior: you may specify ability to auto-resize grid columns by calling a new method CBCGPGridColumnsInfo:: EnableScaledInZoomedGrid.
    7. Added grid icons auto-scaling support: when grid is zoomed in or zoomed out, the images are scaled automatically according to the current zooming ratio (see screenshot).
    8. A new helper method CBCGPGridCtrl::SelectArea provides an easy way to select a range of items.
    9. Implemented ability to draw selected grid item(s) using grid item foreground/background colors (see screenshot). To enable this option, please call a new method CBCGPGridCtrl:: SetDrawCellsWithCustomColorsOnSelection. Please take a look at BCGPGridExample application (new "Formatted Grid" view) to see this new feature in action.

  8. Calendar and Planner
    1. CBCGPPlannerManagerCtrl: added SVG icons support (planner images and up/down custom icons).
    2. Added ability to drop dragged appointment to the day located in non-displayed month(s): CBCGPPlannerManagerCtrl:: SetCalendar and CBCGPCalendar::SetPlanner methods have a new, optional parameter bDropOnDaysOutsideMonths.
    3. Improved appointment dragging behavior in the monthly view.

  9. Property Grid Control
    1. CBCGPProp: a new method BOOL SelectOption(const CString& strOption) allows to select option by text.
    2. A new class CBCGPColorListProp is a property with dropped-down colors list (see screenshot). The following color sets can be displayed: standard (Web colors), system, accent or custom. Please take a look at BCGPControls example to see this new property in action.

  10. Controls
    1. CBCGPListCtrl: added owner-draw groups support (see screenshot). Override a new virtual method OnDrawGroup to implement a themed (e.g. visual manager-based) groups. Please take a look at BCGPControls example to see this feature in action.
    2. CBCGPMenuButton: a new helper method SetupMenu simplifies a menu button initialization.
    3. CBCGPShellList: added a new method RemoveItem.
    4. CBCGPButton: a new public member m_bDisableRoundedCorners allows to disable rounded corners in all visual themes.
    5. CBCGPBreadcrumb: added a new method ResetContent. Call this method to remove all breadcrumb items.
    6. CBCGPInfoBoxView: a new member m_clrBackground specifies view background color.

  11. Miscellaneous
    1. Added new build configuration option: BCGP_EXCLUDE_DIRECT2D. Uncomment line containing this definition in BCGCBProConfig.h file if you wish to completely exclude Direct2D and after that rebuild the required libraries and DLLs.
    2. CBCGPToolBarImages::GrayImages: added SVG icons list support.
    3. CBCGPSVGImage: added "paint-order" attribute support.
    4. CBCGPGridVisualObject: if the parent visual container has auto-hide scrollbars, the grid control scrollbars will also be auto-hidden in the inactive state.
    5. CBCGPOutlookBarPane: added Windows 11/Office 2021-style selected button style (see screenshot). Call new method SetButtonFullRowWidth to specify the button style or GetButtonFullRowWidth to obtain it. In addition, this style is applied to property sheet navigation buttons (Office 2013-2022 and Visual Studio 2012 - 2022 themes, see screenshot). Please take a look at BCGPGridExample or BCGPDigitalDashboard examples to see this new style.
    6. CBCGPMultiViewFrameWnd: added windows navigator support - see screenshot. The user can see the full list of views and docking panes and easily activate desired window/pane with a help of Ctrl+tab keys combination. (In the previous product versions, this navigator was available in CBCGPMDIFrameWnd class only). You have to call EnableWindowsNavigator method to enable this feature. Please take a look at GraphicsManagerDemo sample to see this feature in action.

  12. Examples and Samples
    1. BCGPCalendarDemo: demonstrates how to use planner icons in all visual themes.
    2. BCGPControls: added list control custom themed groups demonstration.
    3. BCGPEdgeDemo and BCGPInternetExplorerDemo: demonstrates how to use a new WebView2 control (CBCGPWebView2Ctrl).
    4. GraphicsManagerDemo: added demonstration how to use windows navigator in multi-view SDI application.
    5. MessageBoxDemo: added caption width limit demonstration.
    6. ResizableForm: toolbar customization dialog is resizable now.
    7. RibbonGadgets: added demonstration how to create an auto-repeat ribbon button and slider control in progress mode.
    8. ToolbarCustomizeDemo: a new sample that demonstrates toolbar/menu customization features (see screenshot).
    9. BCGPGridExample: added new view Formatted Grid (see screenshot). This view demonstrates how to format specific Grid control cells. You may change foreground and background colors, text style and horizontal/vertical alignment.

  13. Fixes
    1. CBCGPGroup: addressed issue with incorrect control rendering when "Draw by parent" style is specified and group has check box or radio button.
    2. CBCGPMenuButton: addressed issue with missing menu keyboard shortcut underlines when the menu was activated by keyboard.
    3. CBCGPFileDialogEx: addressed issue with incorrect tree/list controls fonts in the high DPI mode.
    4. CBCGPColorComboBox: addressed issue with incorrectly cached Windows accent color. Now, the default color is always synchronized with the Windows color.
    5. CBCGPGridCtrl: addressed issue with clicking on the vertical line when grid columns are not resizable. The nearest grid cell will be selected now in this case.
    6. CBCGPTabWnd: addressed issue with unnecessary setting focus to the tab window when one of this window child windows already has focus.
    7. CBCGPTabWnd: added tabs area repainting at the end of tab changing animation. Sometimes, when the application is busy, the tabs were not properly repainted during the animation.
    8. CBCGPOutlookWnd: the vertical font is re-created now when DPI scale is changed or window is moved to monitor with other DPI.
    9. CBCGPGraphicsManagerGDI: addressed issue with incorrect caching of geometry groups in some cases.
    10. CBCGPGlobalUtils: addressed some issues with incorrect calculation of the system border size in GetSystemBorders method.
    11. CBCGPRibbonPanel: addressed some issues with incorrect controls tab order after controls layout optimization.
    12. CBCGPGridCtrl: addressed issue in filter-bar mode in GetSelectedItemCount method.
    13. CBCGPGridCtrl: RedrawMergedItems is working correctly now when item has a bold font.
    14. CBCGPToolbarDateTimeCtrl: improved control appearance on toolbar customization dialog.
    15. CBCGPPropertySheet: fixed Aero Wizard header bottom line appearance in some visual themes.
    16. CBCGPGridCtrl: addressed issue with incorrect grid column width after moving zoomed grid to monitor with a different DPI value.