Release Notes BCGSuite for MFC Version: 33.6. Released: 09/12/2023 Diagram Control A process of adding new shapes to the diagram has been simplified: you do not have to specify the shape size anymore - just use a new constructor that receives a shape point instead of rectangle (CBCGPDiagramShape, CBCGPDiagramImageObject and CBCGPDiagramTableShape classes). The diagram shape size will be calculated according to shape content and internal padding (specified by new virtual method CBCGPDiagramShape::GetExtraPadding). Please take a look at BCGPDiagramDemo example to see this new feature in action. CBCGPDiagramVisualContainer: A new method SetDefaultShapePadding specifies a default padding of the diagram shapes added with automatic size calculation. A new method SetCenterPointInAddItems specifies whether a newly added shape will be centered around the shape point. Improved DPI scaling support: text and shapes are properly scaled now according to the current DPI scaling value. Grid and Report Controls Item state icons are DPI-aware now. CBCGPGridItem: implemented multiple buttons support (see screenshot). To add buttons to your grid cell, you have to override a new virtual method CBCGPGridItem::GetCommandIcons and return the icons list. Override new method CBCGPGridItem::OnClickCommandIcon or CBCGPGridICtrl::OnClickItemCommandIcon to implement a button click action. Also, you can add a new registered message BCGM_GRID_ITEM_COMMAND_CLICK handler. Please take a look at BCGPGridExample application ("Cell Types" view) to see how to use this new feature. Improved keyboard navigation support - added some Excel-like shortcuts: Ctrl+Left: move to the 1st cell in row. Ctrl+Right: move to the last cell in row. Ctrl+Shift+Left: select all cells on the left. Ctrl+Shift+Right: select all cells on the right. Ctrl+Home: move to the 1st cell in grid. Ctrl+End: move to the last cell in grid. Ctrl+Shift+Home: select cells from current to top-left. Ctrl+Shift+End: select cells from current to bottom-right. A new method EnableColumnWidthAutoSizeOnHeaderDblClick specifies whether double-clicking column header divider will resize the column to fit the column content. By default, this option is off. Added new Grid navigation helpers: SelectFirstLastItemInRow: moves selection to the first/last cell in the current row. SelectFirstLastItemInColumn: moves selection to the top/bottom cell in the current column. Controls CBCGPListCtrl: added a new virtual method 'OnBeforeDrawItem'. Called by the framework before the list control item drawing. CBCGPStatic: added a new member 'm_clrBkgnd' (see screenshot). This attribute specifies background color of the control. See BCGPControls example application. CBCGPWinUITiles: Improved keyboard navigation support. When control contains the tiles only (no groups, no captions), TAB key navigates through the tiles now. Drawing of the tile header and text has been optimized. CBCGPHotSpotImageCtrl additions: Implemented transparent background: if m_clrBack member (specified by SetBackgroundColor method) is CLR_NONE, the picture will be drawn with transparent background. Added new method SetBuffer: call this method to load picture from the memory buffer. CBCGPTagCloud: added a new method 'FindTag'. Call this method to find tag by name. Graphics Manager CBCGPImage: can be created from the buffer now. A new constructor that receives 'LPBYTE lpBuffer' parameter has been added to CBCGPImage class. Now, you can easily load image stored in a database as a 'BLOB' record type. Please take a look at GraphicsManagerDemo sample ("Images" view) to see this new feature in action. CBCGPTextFormat: implemented colored font support (see screenshot). EnableColorFont and IsColorFontEnabled methods were added to this class. Please note that this feature is available in CBCGPGraphicsManagerD2D (Direct2D) only. You can see this new feature in action in our GraphicsManagerDemo sample ("Texts" view). MSAA and CodedUI Tests CBCGPDurationCtrl: improved returned values for the accessibility value and role. CBCGPWinUITiles: improved accessibility support for the selected and hidden tiles. Edit control Changed BCGM_ON_MODIFIEDCHANGE registered message parameters: LPARAM receives a pointer to the current window. Changed BCGM_ON_EDITCHANGE registered message parameters: WPARAM received control id of the current window and LPARAM receives a pointer to the current window. SetSymImgList method can be called now before the window creation. Miscellaneous CBCGPVisualContainer: added DPI support for the container grid. CBCGPVisualContainer::SetGridSize has a new, optional parameter 'BOOL bDPIAware'. CBCGPGlobalUtils::ScaleByDPI(CRect): added new optional parameter 'bKeepCenter'. Specifies whether rectangle should be scaled around the center point. CBCGPSVGImage::DoDraw: added a new, optional parameter 'bSVGStretch'. By default, this parameter is TRUE. Set it to FALSE to prevent scaling during conversion from SVG to BMP. CBCGPChartVisualObject::ShowDataLabels has a new, optional parameter 'dblDistanceFromMarker'. If this parameter is not (-1), the value will be passed to SetDataLabelDistanceFromMarker of all series of the chart. Examples and Samples BCGPGridExample: added demonstration of the grid cell with multiple buttons. In the "Formatted Grid" view you can see how to add Bold and Italic tags to the exported HTML. BCGPControls: added feature group tiles and static control with custom background demonstration. BCGPDiagramDemo: demonstrates how to add shapes with default (automatically calculated) sizes. GraphicsManagerDemo: added colored font demonstration in the "Texts" view. A new view "Images" (see screenshot) demonstrates how to initialize CBCGPImage objects in the various ways. Fixes Addressed some issues with a building library with the latest C++ language standard. CBCGPEdit: a 'Clear' icon is loaded now only if control has a "Search" mode. CBCGPPropertySheet: addressed issue with incorrect header area height after DPI changing. CBCGPStatic: addressed some issues with DPI scaling of the control's picture. CBCGPSVGImage: clipPath transformations are correctly processed now. CBCGPExplorerToolBar: addressed issue with incorrect DWM support when explorer bar is located under the Ribbon bar or frame caption bar. CBCGPComboBox: addressed some minor issues in the auto-complete mode. CBCGPDateTimeCtrl: addressed issue with unnecessary mouse wheel processing in the touch mode. CBCGPGridCtrl: addressed issue with incorrect right-most column width in the column auto-resize mode in some cases. CBCGPSVGImage: addressed issue with incorrect processing of the named colors loaded from SVG source file. Improved appearance of the Visual Container scroll bars.