
Adds support for Microsoft Windows 11, Ribbon Simplified Mode and Grids frozen rows.
Features
- Added Ribbon Simplified Mode. In this mode, the ribbon controls are displayed in a single line and panels (groups) are not collapsible.
- The product source code is now fully-compatible with latest C++ code standards and technologies:
- ISO C++ 20 standard.
- LLVM (CLang-Cl).
- The product is now fully compatible with Microsoft Windows 11.
- Ribbon Bar
- CBCGPRibbonKeyboardCustomizeDlg: a new registered message BCGM_ON_BEFORE_ASSIGN_RIBBON_KEY is now sent to the main frame before assigning a custom keyboard shortcut.
- Ribbon Commands Search ("Tell Me"): Added support for split buttons (items with a default command).
- CBCGPRibbonComboBox: Added new AddSeparator / InsertSeparator methods which allow you to add separators to the ribbon combo box.
- Added a new CBCGPRibbonBar::OnPrepareLightImages virtual method which is called by the framework when a light version if the Ribbon image list needs to be prepared.
- Improved keyboard navigation for the customized keyboard (if the Ribbon categories/panels order and(or) visibility were changed in the Ribbon customization).
- CBCGPRibbonColorButton: Added a new OnDrawColorBox virtual method which allows you to customize a color box appearance.
- CBCGPRibbonButton: RibbonButtonOnQAT enumeration now has a new BCGPRibbonButton_Show_As_Switch member.
- Ribbon Designer: Added simplified mode support and accessibility (testing) control names.
- Dialogs and Forms
- Added a new globalData.m_bAutoPrepareComboListStyles global flag: set it to TRUE in the application class constructor if you wish to recreate all list boxes and combo boxes with owner-draw (fixed) style.
- CBCGPPropertySheet: Added a new OnGetPageNotificationBadgeSize virtual method which allows you to customize left-side notification badge dimensions.
- CBCGPScrollDialog: Improved scrolling behavior after dialog resizing.
- Toolbar buttons/menu items list are no longer themed when toolbar customization dialog is not visual manager-enabled.
- Gauge Controls
- CBCGPCircularGaugeImpl and CBCGPLinearGaugeImpl: Improved interaction mode for the multi-scale gauges. New methods SetDefaultInteractivePointer and SetDefaultInteractiveScale allow you to specify default (used in the mouse down event) pointer and scale.
- CBCGPBaseVisualObject::SetValue with uiAnimationTime > 0 now stops the current animation and starts a new one from the last animation finish value.
- CBCGPNumericIndicatorImpl: Added a new (BCGP_NUMERIC_INDICATOR_FORMAT_HEX_64) type to format the value in HEX format with 64-bit precision.
- Visual container and Visual Designer
- CBCGPBaseVisualObject and CBCGPVisualContainer: ExportToBitmap and CopyToClipboard methods now have a new optional parameter const CBCGPBrush& brFill.
- CBCGPEditVisualObject: Added edit box prompt support - SetPrompt and GetPrompt methods have been added to this class.
- Visual Designer: Added Chart Axis names to the default chart object.
- Visual Manager and Themes
- CBCGPTabWnd: Improved tab selection appearance (especially, for the multiple-selected colored tabs).
- Microsoft Office 2019 theme: Added Ribbon tab highlighting and activation animations.
- Office 2019 theme: Improved contextual Ribbon tab appearance.
- Improved appearance of the default Ribbon control icon in the simplified look.
- Improved appearance of the "colorless" (BCGPCategoryColor_None) contextual tabs in all visual themes.
- The Ribbon controls drop-down arrows now have a modern look.
- Improved appearance of pin optionally located on the list box item right side.
- Grid and Report Controls
- Added "frozen rows" (non-scrollable rows located on top of the grid) support. Added new methods to the grid control:
- FreezeRows: this function enables the "frozen rows" feature, which allows to keep rows visible while the rest of rows are scrolled vertically.
- UnfreezeRows: disables the "frozen rows" feature.
- CBCGPGridItem::SetValue method is now virtual.
- Added support for the grid item selected and overlay icon: SetSelectedImage, GetSelectedImage, SetOverlayImage and GetOverlayImage methods have been added to the CBCGPGridItem class.
- Added "frozen rows" (non-scrollable rows located on top of the grid) support. Added new methods to the grid control:
- Controls
- CBCGPTreeCtrlEx: Added TVIF_SELECTEDIMAGE and TVIS_OVERLAYMASK support. This addition makes CBCGPTreeCtrlEx more compatible with standard Tree controls.
- CBCGPInfoBoxCtrl: Added the ability to specify large text now (without CStatic limitation: 256 characters).
- CBCGPSliderCtrl: Added the ability to align selection bar by tick marks.
- CBCGPColorComboBox: Added a new SelectColor method which allows you to select an item by RGB value.
- CBCGPComboBox: Added CB_SETCUEBANNER message processing. The cue banner will be converted to the edit prompt.
- CBCGPComboBox and CBCGPListBox: Added a new BCGPModifyStyle method which allows you to re-create a control with the same properties (location, data, tab order), but with a new style.
- CBCGPEdit: Added EM_SETCUEBANNER message processing. The cue banner will be converted to the edit prompt.
- CBCGPListBox: Added support for alternate (odd/even) row colors.
- CBCGPProgressCtrl: Added a new StopLighting method which stops a light effect animation.
- Graphics Manager
- Added a new SetCreateInstanceCallback static method which allows you to specify a callback which will be called when a new graphics manager is created by the framework.
- Added a new IsGeometryContainsPoint method which tells you whether a point is located in the specified geometry bounds.
- MSAA and CodedUI Tests
- CBCGPWinUITiles: Added MSAA support for scrollbar objects.
- CBCGPVisualContainer: Added MSAA support for scrollbar objects.
- CBCGPButton: Added accessibility default action for the check box and radio button.
- Added toolbar button/menu item/ribbon control accessibility (testing) names.
- Miscellaneous
- CBCGPToolBarImages: Added a new GetResourceID method which returns an images resource ID (if image list was created from the single resource).
- CBCGPToolBarImages::ExportToImageList: Added a new optional parameter 'BOOL bMask32' (default is FALSE). If this parameter is TRUE, the 32-bit image list will be created with ILC_MASK flag.
- CBCGPStatusBar: SetPaneWidth and SetPaneInfo methods now have a new optional parameter bExactWidth. Set it to TRUE if you wish to specify and exact pane width (without internal paddings).
- CBCGPSplitterWnd: class constructor has a new, optional parameter bIsScrollBarThemed. Set it to TRUE if you wish to enable themed scroll bars inside the splitter panes.
- CBCGPFileDialogEx: New OnFolderChange (called after changing current folder) and OnTypeChange (called after changing file type) virtual methods have been added to this class. Override them if you wish to customize the extended file dialog behavior and/or appearance.
- CBCGPGanttChart: SelectItem has a new, optional parameter bStartDrag. When this parameter is FALSE, you may select an item without ability to drag it.
- CBCGPGlobalUtils: Added AnimateRect method. Call this method to calculate an intermediate area during transition between 2 rectangles.
- CBCGPCalculator: Improved keyboard support. Added a "press button" visual feedback and implemented standard Microsoft Windows keyboard shortcuts.
- CBCGPToolbarComboBoxButton: Added a new FindItemData method which returns an index of item with specified data.
- Chart control: Improved hit-testing used in the interactive mode.
- Notification badges: Added the ability to specify INT_MAX value to draw badge without number or ellipses.
- CBCGPRegistry: Added a new Reset method which rolls-back m_hKey to the initial value (should be called after CBCGPRegistry::Close!)
- Added new member to BCGPGLOBAL_DATA: bIsWindows11. This variable is TRUE if application is running under Microsoft Windows 11 or future versions.
- Examples and Samples
- BCGPControls: Added demonstration of list box alternate colors, align selection bar by tick marks in the slider control and overlayed/selected icons in extended tree control.
- BCGPGaugesDemo: Improved interactive mode demonstration.
- BCGPGridExample: Added frozen rows demonstration.
- BCGPMSOfficeDemo: Added Ribbon simplified mode demonstration.
- DrawCli: Demonstrates how to use CBCGPSplitterWnd for creating a splitter with themed scroll bars.
- NotificationBadgesDemo: Added badge without number (value is INT_MAX) demonstration.
- RibbonGadgets: Added demonstrations how to create a color picker with custom shape and combo box with separators.
- RibbonSimplifiedMode : This new sample demonstrates how to create a simplified Ribbon bar and customize Ribbon controls appearance in the simplified mode.