Release Notes BCGSuite for MFC Version: 32.0. Released: 10/21/2021 The product source code is fully-compatible with latest C++ code standards and technologies: ISO C++ 20 standard. LLVM (CLang-Cl). The product is fully compatible with a final version of Windows 11 (see screenshot)! All product functionalities were thoroughly tested under latest release and all test cases are passed. Dialogs and Forms CBCGPPropertySheet: a new virtual method OnGetPageNotificationBadgeSize allows to customize left-side notification badge dimensions. CBCGPScrollDialog: improved scrolling behavior after dialog resizing. Gauge Controls CBCGPCircularGaugeImpl and CBCGPLinearGaugeImpl: improved interaction mode for the multi-scale gauges. New methods SetDefaultInteractivePointer and SetDefaultInteractiveScale allow to specify default (used in the mouse down event) pointer and scale. CBCGPBaseVisualObject::SetValue with uiAnimationTime > 0 stops the current animation and start a new one from the last animation finish value. CBCGPNumericIndicatorImpl: added a new type (BCGP_NUMERIC_INDICATOR_FORMAT_HEX_64) to format the value in HEX format with 64-bit precision. Visual container and Visual Designer CBCGPBaseVisualObject and CBCGPVisualContainer: ExportToBitmap and CopyToClipboard methods have a new optional parameter const CBCGPBrush& brFill. CBCGPEditVisualObject: implemented edit box prompt support - SetPrompt and GetPrompt methods were added to this class. Visual Designer: added Chart Axis names to the default chart object. Grid and Report Controls Added "frozen rows" (non-scrollable rows located on top of the grid) support (see screenshot). The following new methods have been added 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. Please take a look at BCGPGridExample application to see this feature in action. CBCGPGridItem::SetValue method is a virtual now. Implemented support for the grid item selected and overlay icon: SetSelectedImage, GetSelectedImage, SetOverlayImage and GetOverlayImage methods were added to CBCGPGridItem class. Controls CBCGPTreeCtrlEx: added TVIF_SELECTEDIMAGE and TVIS_OVERLAYMASK support (see screenshot). This addition makes CBCGPTreeCtrlEx more compatible with standard Tree control. Please take a look at BCGPControls example ("Extended tree control" view) to see this feature in action. CBCGPInfoBoxCtrl: you can specify a large text now (without CStatic limitation: 256 characters). CBCGPSliderCtrl: implemented ability to align selection bar by tick marks. New methods SetAlignSelToTickMarks and IsAlignSelToTickMarks were added. Please take a look at BCGPControls example to see this new feature in action. CBCGPColorComboBox: a new method SelectColor allows to select item by RGB value. CBCGPComboBox: added CB_SETCUEBANNER message processing. The cue banner will be converted to the edit prompt. CBCGPComboBox and CBCGPListBox: a new method BCGPModifyStyle allows to re-create control with the same properties (location, data, tab order), but with a new style. Windows doesn't allow to modify some list box/combo box styles (such as owner draw or sorted) after control is created, but sometimes this change is needed (for example, when visual theme is applied to the parent dialog). CBCGPEdit: added EM_SETCUEBANNER message processing. The cue banner will be converted to the edit prompt. CBCGPListBox: implemented alternate (odd/even) row colors (see screenshot). Call new method SetAlternateRowColor to enable/disable this feature. You can see this new appearance in BCGPControls example. Graphics Manager A new static method SetCreateInstanceCallback allows to specify a callback which will be called when a new graphics manager is created by the framework. A new method IsGeometryContainsPoint tells whether a point is located in the specified geometry bounds. MSAA and CodedUI Tests CBCGPWinUITiles: added MSAA support for scrollbar object. CBCGPVisualContainer: added MSAA support for scrollbar objects. CBCGPButton: implemented accessibility default action for the check box and radio button. Miscellaneous 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 method AnimateRect. 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 Windows keyboard shortcuts. Chart control: improved hit-testing used in the interactive mode. 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. Fixes Addressed issue with missing context menu that should appear upon Press and Hold gesture event in some standard controls (Visual Studio 2010 or later). CBCGPSliderCtrl: addressed issue with reversed order in non-themed control. CBCGPSVGImage: addressed some issue with default attributes specified in "svg" node. CBCGPPropList: improved behavior of clicking non-selected property button area. In the previous versions unexpected OnClick event was fixed in this case. CBCGPGroup: addressed issue with incorrect text color in non-themed control. CBCGPBaseVisualCtrl: OnWndEnabled(FALSE) is called when control is initially disabled. CBCGPGroup: addressed some redrawing issues. CBCGPProgressCtrl: addressed issue with border redrawing in the high-contrast mode. CBCGPCircularGaugeImpl: addressed issue with incorrect level bar position when gauge is placed inside the scrollable container. CBCGPGridCtrl: addressed issues in control non-client area when WS_EX_CLIENTEDGE extended style is specified.