BCGSuite for MFC Version: 31.2. Released: 4/15/2021 Chart Control Improved chart thumbnails: Implemented thumbnail mode for the Chart advanced legend (see screenshot): new methods SetThumbnailMode and IsThumbnailMode were added to CBCGPChartLegendVisualObject class. Developer can specify now a scaling ratio of all text labels in the chart thumbnails: SetThumbnailFontRatio and GetThumbnailFontRatio were added to CBCGPChartVisualObject class. Improved thumbnail appearance in Torus, Scatter and Ternary charts. 3D charts walls drawing: Added ability to enable/disable walls jointing: new methods SetWallsJoint and IsWallsJoint were added to CBCGPChartDiagram3D class. Improved walls appearance (both in thin and thick modes) (see screenshot). Gauge Controls CBCGPKnob: implemented disabled knob control drawing. CBCGPCircularGaugeImpl: improved interactive mode - the pointer cannot be moved out of scale bounds anymore. You may customize this behavior by overriding new virtual method "IsPointerMovementAllowed". CBCGPNumericIndicatorImpl has the following additions: Invisible segments drawing (see screenshot). SetDrawInvisibleSegments, IsDrawInvisibleSegments, SetInvisibleSegmentsOpacity and GetInvisibleSegmentsOpacity methods were added. Indicator state (see screenshot). A state can be Normal, Error or Off. SetState and GetState methods were added. Internal padding (see screenshot). SetPadding and GetPadding methods were added. Horizontal and vertical alignment (see screenshot). SetHorizontalAlign, GetHorizontalAlign, GetVerticalAlign and SetVerticalAlign methods were added. Please take a look at BCGPGaugesDemo example ("Digital indicator" view) to see these additions in action. Diagram Control Implemented ability to prevent diagram fonts (text formats) scaling when the diagram is being scaled: a new method EnableScalingFonts added to CBCGPVisualContainer class. In addition, CBCGPGlobalUtils::ScaleByDPI(CBCGPVisualContainer& container) has a new optional parameter bScaleFonts (TRUE by default). Disabling font scaling is useful when diagram has a default (already scaled by DPI) font. Improved diagram appearance: a regular font is used now as a default (see screenshot). Please call a new global method CBCGPDiagramTextDataObject::SetDefaultFont If you need to specify a default diagram font. For example, if you wish to use a bold default font (as it was in the previous product versions), please call CBCGPDiagramTextDataObject::SetDefaultFont(globalData.fontBold) before creating the diagram control. Controls CBCGPComboBox: added CComboBoxEx-like icon displayed left of the edit box (see screenshot). SetImageList methods have a new optional parameter bDisplayIconLeftOfEditBox - set it to TRUE if you wish to display an icon. CBCGPEdit: new method EnableIconOnLeft allows to display an icon on the left side of control (see screenshot). CBCGPSliderCtrl has the following additions and improvements: New method SetPositionOnClick allows to change the thumb position to the clicked location when user clicks the channel. New method SetReversedOrder allows to swap minimal and maximal range values. This is useful when you have the vertical slider and need to display the min value on the bottom (see screenshot). Please take a look at BCGPControls example ("Slider control" view) to see the new features in action. Graphics Manager CBCGPGraphicsManager: improved geometries scaling (please take a look at GraphicsManagerDemo sample). CBCGPImage: constructors with HICON and HBITMAP have a new optional parameter "bAutoDestroy" (FALSE by default). If this parameter is TRUE, icon/bitmap will be automatically destroyed in CBCGPImage destructor. Miscellaneous CBCGPBreadcrumb::SelectSubPath: added new optional parameter "delimiter" ('\' by default). A new helper class CBCGPPostRedraw simplifies implementation of flicker-less controls. CBCGPDrawManager: added a new method DrawEdge. This method is very similar to CDC::DrawEdge, but edge is rendered using current theme colors and can be drawn on DWM window area. CBCGPSVGBase: added support for "title" and "desc" SVG node attributes; GetName and GetDescription methods were added. A new virtual method CBCGPGridCtrl::OnKeepGroupWithChildrenOnNewPrintPage specifies whether a grid group should be printed from the new page. By default, it returns FALSE. New class CBCGPToolbarSlider implements a CMFCToolbarButton-derived toolbar control with embedded CBCGPSliderCtrl (see screenshot). Please take a look at Slider and GraphicsManagerDemo samples to this control in action. Examples and Samples BCGPControls: demonstrates how to add an icon to the edit box and combo box with CBS_DROPDOWN style and slider control improvements. BCGPGaugesDemo: demonstrates new digital indicator features such as state, drawing invisible segments and internal padding. GraphicsManagerDemo: added geometries scaling demonstration (using new CBCGPToolbarSlider control) - see screenshot. SVGViewDemo: added SVG background support and improved drawing SVG with custom view box. BCGPChartExample: Added chart legend thumbnail demonstration. Moved chart data loading ("Data Binding" view) to the working thread. BCGPOrganizer: revised outlining settings for Macros View. Fixes CBCGPGraphicsManagerGdiPlus: addressed issue with incorrect background of the image created from HICON. CBCGPListBox: addressed issue with incorrect control redrawing during selection of multiple items by keyboard. CBCGPStatic: addressed several issues with drawing themed control borders. CBCGPGanttChart: corrected header text label vertical offset. CBCGPSVGImage: addressed some issues with SVG definitions loading. CBCGPSVGImageList: addressed issue with loading resources with hexadecimal IDs in LoadSVG method. CBCGPTreeCtrlEx: addressed some issue in GetNextItem method (the code is more compatible now with standard Tree view control). CBCGPODBCGridCtrl: addressed issue with closing control created on the dialog box. CBCGPGraphicsManagerGdiPlus: addressed some issues with processing gradient stops in the gradients.