Release Notes BCGSuite for MFC Version: 30.0. Released: 05/29/2019 Visual Studio 2019 support: The source files are fully compliant with Visual 2019 C++ compiler. All our examples and samples were thoroughly tested with VS 2019. Evaluation version contains DLLs and libraries required for VS 2019. Dialogs and Forms A new class CBCGPScrollDialog implements a dialog box with scrolling support (see screenshot). Please take a look at new sample ScrollDialogDemo to see this feature in action. CBCGPFormView: added automatic scrolling when a newly focused control exceeds form's bounds. CBCGPPropertySheet: added custom (owner-draw) notification badges support (see screenshot). Override new virtual method 'OnDrawPageNotificationBadge' to draw your custom badge (see PropSheetDemo sample). Chart Control Implemented drawing of partially visible data points for a fixed interval width. New methods EnableAllUnitsOnFixedInterval and IsAllUnitsOnFixedInterval were added to CBCGPChartAxis class. A new method ValueFromPoint was added to CBCGPChartTernaryAxis class. CBCGPChartSurfaceSeries::ColorMode enumerator has a new member: CM_SERIES: when this mode is specified, each series is drawn in one color, which is defined by the currently selected theme or by user. Grid and Report Controls CBCGPGridItem: added hot-tracking support (see screenshot). Override a new 'IsHotTrackEnabled' method in your CBCGPGridItem-derived class and return TRUE to enable grid cell mouse tracking. Next, you've to override new virtual methods 'OnMouseMove' and 'OnMouseLeave' to implement a mouse cursor processing inside this grid cell. BCGPGridExample ("Cell Types" view, "Rating" cell) demonstrates this new feature. CBCGPGridCheckItem: added grid control modes ("Check box" or "Switch") (see screenshot). New methods SetMode and GetMode were added to this class. BCGPGridExample ("Cell Types" view) demonstrates this new feature. Implemented a special row marker for the Grid cell editing mode (see screenshot): when row is selected and one of the cells is being edited, a special marker (pencil) is displayed on the left side. New method CBCGPGridCtrl::SetRowHeaderEditImage allows to specify this symbol. In addition, you may draw your own marker by overriding new method CBCGPGridCtrl::OnDrawRowHeaderEditImage. Controls CBCGPDateTimeCtrl: added WM_GETTEXT message processing. A result of this message is formatted date and time value of this control. A new class CBCGPIPAddressCtrl implements themed IP Address control (see screenshot). You may see it in our BCGPControls example ("Miscellaneous" page). CBCGPListBox: new method MoveItem allows to change an existing list box item position (index). New class CBCGPDragListBox implements a list box that allows users to move items within the control (see screenshot). Generally, this control is very similar to MFC CDragListBox, but it has visual themes support and other CBCGPListBox features such as pinned items support, color bars and others. Please take a look at ListBoxDemo sample to see this new control in action. CBCGPSliderCtrl: introduced a new "progress" mode (see screenshot). In this mode, the channel area left of the slider's thumb is filled with some (default or user-defined) color. Call a new method CBCGPSliderCtrl::EnableProgressMode to enable or disable this mode. CBCGPSliderCtrl::IsProgressMode tells whether the progress mode is specified. Please take a look at ResizableForm sample ("Page 4" page) to see this new feature in action. CBCGPGroup: implemented group caption check box / radio button (see screenshot). When user "unchecks" the group, all controls located within the group bounds will be automatically disabled. SetCheckRadioStyle, GetCheckRadioStyle, SetCheck and GetCheck methods were added to CBCGPGroup class. New sample application "GroupBoxDemo" demonstrates how to use this new feature. Miscellaneous CBCGPCalendar::IsDateMarked method is a virtual now: override it if you wish to mark specific calendar's date without calling MarkDates method. New virtual method CBCGPCalendar::OnClickTodayButton is called when user clicks "Today" button on the calendar. CBCGPEditCtrl: added visual theme-dependable bookmarks (see screenshot). If for some reason you wish to keep old (gradient-style) bookmarks, please call a new CBCGPEditCtrl's method EnableVisualManagerMarkers with bEnable = FALSE. Examples and Samples BCGPGridExample: added demonstration how to add switch control and custom rating control to the grid. ListBoxDemo: demonstrates a new CBCGPDropListBox class. PropSheetDemo: demonstrates owner-draw notification badges. ResizableForm: added slider controls in a progress mode demonstration. New sample application ScrollDialogDemo demonstrates how to use a new class CBCGPScrollDialog. New sample application GroupBoxDemo demonstrates how to add check box and radio button to the group box control. Fixes CBCGPGraphicsManagerD2D: addressed issue with incorrectly created stroke style in some cases. CBCGPListBox: addressed issue with incorrectly painted list box item when control has "Right Align" style. CBCGPPropertySheet: addressed issue with repainting of the separator located below the wizard buttons after property sheet was resized (Wizard mode only). CBCGPStatic: addressed issue with calling SetPicture multiple times. In this case, a previously loaded image is properly cleared. CBCGPSwitchCtrl correctly processes BCGM_ONSETCONTROLVMMODE registered message now. CBCGPVisualManager: addressed switch control drawing issue in some visual themes. Chart: addressed issue with incorrect surface series rendering in case of CBCGPChartSurfaceSeries::CM_SINGLE color mode when a number of color levels is 1. CBCGPPlannerViewSchedule: addressed issue with incorrect size for all-day appointments that have duration of more than one day. CBCGPPropertyPage: addressed issue with incorrect header width in some cases. Visual container and control: fixed incorrect position and layout of the visual container items after printing or exporting. CBCGPGridCtrl: addressed some issues with a grid horizontal scrolling.