Release Notes BCGSuite for MFC Version: 36.0. Released: 11/26/2024 Dialogs and Forms BCGP_MSGBOXPARAMS: A new member, m_dwUserData (DWORD_PTR type), has been added. CBCGPMessageBoxImpl (base class of CBCGPMessageBox and CBCGPMessageLightBox): A new virtual method, IsDrawButtonsBanner, enables you to specify whether the bottom area around the message box buttons is drawn with a special background. Grid and Report Controls A new method, CBCGPGridCtrl::EnableColumnsResizeInClientArea, enables you to turn on or off the splitter between columns within a grid client area. Calling this method doesn't affect the grid header. A new helper method CBCGPGridRow::IsAutoGroup tells whether the grid row was automatically created by the report control. The capability to search in the row names, including grid caption labels, has been integrated. To enable this option, please use the new flag: BCGP_GRID_FINDREPLACE_PARAM::FR_LOOKIN_ROWLABELS. Alternatively, you may always enable this option by calling the new method CBCGPGridCtrl::EnableSearchInRowName. A new method CBCGPGridCtrl::GetGroupByBoxRect() retrieves the bounding rectangle of a Group-By-Box. Controls CBCGPTreeCtrlEx additions: DeleteItem and DeleteAllItems have a new, optional parameter, "bNotify" (the default value is FALSE). If this parameter is TRUE, a TVN_DELETEITEM notification will be sent upon the tree item(s) destroying (the behavior similar to the Windows tree control). SetExpandNewItems determines whether a newly added tree folder should expand by default. We have added support for the custom tooltips (TVS_INFOTIP style). The tree control's keyboard navigation performance with a large number of items has improved. A new class CBCGPRatingCtrl implements a rating control (see screenshot). Please look at our BCGPControls example to see this new control in action. CBCGPMaskEdit has improved the pasting operation's behavior by only pasting the "valued" part (without the mask) if the pasted text shares the same prefix as the control's mask. Shell Management CBCGPShellBreadcrumb: The SetRelatedShellList method introduces a new, optional parameter called bSetFocusToShellList, which defaults to FALSE. When this parameter is TRUE, calling this method immediately sets the focus to the related shell list control. CBCGPShellBreadcrumb: The SelectShellItem method introduces bExactPath, a new optional parameter that defaults to TRUE. The SelectShellItem method will select the most matched path when this parameter is FALSE. CBCGPShellBreadcrumb enhances network management support by displaying the first permissible node, such as "Network," in the shell breadcrumb control when the user lacks access to the typed network node (e.g., requiring the password dialog). Graphics Manager CBCGPColor: implemented a new method named InvertLuminosity, which reverses the color luminosity. CBCGPBrush: implemented a new method named InvertLuminosity, which reverses the brush luminosity. CBCGPStrokeStyle: a new method SetMiterLimit enables the modification of the stroke miter limit for existing stroke styles. CBCGPSVGImage: implemented a new method named InvertLuminosity, which reverses the SVG icon luminosity. CBCGPSVGImage: ExportToFile method saves SVG icon now if extension of the out path is ".svg." This addition allows extracting an SVG icon from the SVG sprite. MSAA and CodedUI Tests If a tile in WinUI lacks a name, the tooltip text will serve as its accessibility name. CBCGPGridCtrl: improved the active accessibility support for the grid header, which includes multi-line headers, grid filter bar, and group-by-box area. Please call CBCGPGridCtrl::EnableAdvancedGridAccessibility to activate this new option. The CBCGPGridCtrl::IsAdvancedGridAccessibilityEnabled method indicates the status of this option's activation. When this option is enabled, the grid has an additional accessibility hierarchy level of the corresponding grid objects. Edit control Added ability to automatically adjust colors of the editor blocks in the dark themes (see screenshot). The method CBCGPEditCtrl::SetLineColorMarker has a new, optional parameter bAutoDarkBackground (default value is FALSE). Please look at our EditorMarkers sample to see this new feature in action. Added support for the default context menu (with the standard commands such as "Cut", "Copy", "Paste", and "Select All"). Call the new CBCGPEditCtrl method EnableDefaultContextMenu to enable this option. Our sample ResizableForm demonstrates this new feature. Revised the control's horizontal scrolling. The new implementation conceals the unnecessary horizontal scrollbar and determines the actual maximum scroll width during text editing. Call the new CBCGPEditCtrl method SetFixedHorizontalScrollRange to enable this new behavior. By default, the editor uses the old implementation. We have simplified the use of the edit control in dialogs and forms by creating it with the parent dialog font, default keyboard accelerators, and a context menu. See our sample application, ResizableForm, to see how it works. The new method of the CBCGPEditCtrl class SetSideBarWidth specifies the side bar width. GetSideBarWidth returns a previously specified width. Miscellaneous CBCGPVisualContainer now supports visual themes for the default background and outline colors. Call a new method EnableVisualManagerTheme to enable or disable the visual theme support, and IsVisualManagerTheme to know whether the container supports visual themes. CBCGPInfoBoxView: We have implemented a horizontal padding to create a gap between the info box and the left and right edges of the view. Call a new method, SetHorizontalPadding, to specify the padding and GetHorizontalPadding to obtain it. The CBCGPMultiViewFrameWnd class now includes two new virtual methods: OnBeforeCreateView, which executes before the creation of a view, and OnAfterCreateAllViews, which executes after the creation of all views. The CBCGPMultiViewFrameWnd has incorporated a new member, m_bUseNextPrevPaneCommandsForViewsNavigation, that determines whether to utilize the standard pane navigation commands, typically mapped to the F6 and Shift+F6 keyboard shortcuts, for view navigation. Integration Wizard: added options for building libraries and DLLs for ARM and ARM64 platforms (Visual Studio 2017, 2019, and 2022; see screenshot). In the previous product versions, customers were able to build the libraries for these platforms only in the Visual Studio environment. Examples and Samples BCGPControls: added demonstrations of the new rating control and extended tree control custom tooltips. BCGPGridExample: a rating cell (custom) is based now on the new CBCGPRatingCtrl. BCGPOrganizer: illustrates how to use the new CBCGPWinUITilesView class (on the start page). ResizableForm: added demonstration of using the CBCGPEditCtrl inside the dialog. Fixes CBCGPChartVisualObject: The chart table's interlace fill brush now recreates itself when the chart's visual manager theme changes. CBCGPChartView has addressed an issue with incorrect redrawing on the chart border edges in some visual themes. CBCGPCircularGaugeImpl, CBCGPLinearGaugeImpl, and CBCGPKnob have addressed an issue with the incorrect hit testing of the gauge pointer in the interactive mode. CBCGPGanttControl has addressed some issues with incorrect header height in multi-monitor environments; the header height is now calculated correctly after changing the DPI. CBCGPSVGImage: addressed some issues with drawing SVG icons with custom line dashes. CBCGPSVGImage: The node opacity is calculated correctly now when the opacity is specified in the several levels of the styles. CBCGPSVGImage: The color transformation methods, such as MakeDarker or ReplaceColors, are now functioning correctly for the simplified SVG icons. CBCGPGridCtrl: GetSelectedItems ignores duplicated items when the merged cell is selected. The SVG Gaussian blur filter has an improved algorithm for calculating the filter deviation, which makes the SVG images that use it appear much better.