
Adds support for Visual Studio 2019, plus new features for chart, dialog, grid and report components.
Features
- Microsoft Visual Studio 2019 support:
- The source files are fully compliant with Visual 2019 C++ compiler.
- All examples and samples were thoroughly tested with VS 2019.
- Evaluation version contains DLLs and libraries required for VS 2019.
- Frame Windows
- Frame windows with a themed non-client area are created with WS_CAPTION style now. This change addresses many issues such as:
- Incorrect multi-monitor support.
- Incomplete side-by-side behavior.
- Frame resizing performance.
- Frame windows with a themed non-client area are created with WS_CAPTION style now. This change addresses many issues such as:
- Dialogs and Forms
- A new class CBCGPScrollDialog implements a dialog box with scrolling support.
- CBCGPFormView: added automatic scrolling when a newly focused control exceeds form's bounds.
- CBCGPPropertySheet: added custom (owner-draw) notification badges support. Override new virtual method 'OnDrawPageNotificationBadge' to draw your custom badge (see PropSheetDemo sample).
- Docking Panes
- CBCGPDockingControlBar: implemented ability to specify pane's caption depending on the current state. For example, you can add a name of the currently selected object on the properties grid caption.
- New global flag CBCGPOutlookButton::m_bDrawAmpersand specifies whether button's label should be drawn with underlined character or ampersand before this character. By default, the label is drawn with underlined character.
- CBCGPStatusBar: implemented status bar pane notification badge support.
- 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.
- Visual Manager and Themes
- A control's description (usually located below control's label) has a special color now. A new method 'GetDescriptionTextColor' was added to CBCGPVisualManager class.
- CBCGPVisualManagerVS2019: changed visual theme colors to match VS 2019 release (Light blue theme).
- Grid and Report Controls
- CBCGPGridItem: added hot-tracking support. Override a new 'IsHotTrackEnabled' method in your CBCGPGridItem-derived class and return TRUE to enable grid cell mouse tracking.
- CBCGPGridCheckItem: added grid control modes ("Check box" or "Switch"). New methods SetMode and GetMode were added to this class.
- Implemented a special row marker for the Grid cell editing mode: 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.
- Desktop Alert Window
- CBCGPPopupWindow: improved colors of BCGPPopupWindowTheme_Black theme.
- CBCGPPopupWindow: if window transition effect is CBCGPPopupMenu::SLIDE and desktop alert should appear on the left or right screen side, the sliding will be horizontal.
- 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.
- 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. 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.
- CBCGPSliderCtrl: introduced a new "progress" mode. In this mode, the channel area left of the slider's thumb is filled with some (default or user-defined) color.
- CBCGPGroup: implemented group caption check box / radio button. 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.
- Miscellaneous
- Implemented ability to enable "Press and Hold" gesture event for all library controls: by default, this event is disabled for the performance reasons, but you can enable it now by setting globalData. m_bTabletDisablePressAndHold to FALSE.
- CBCGPCalendar::IsDateMarked method is 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.
- CBCGPPropList: implemented items button custom color. New methods SetItemButtonColor and GetItemButtonColor were added.
- CBCGPWinApp class overrides DoMessageBox method and displays a themed message box (BCGPMessageBox) instead of the standard message box.
- CBCGPAppOptions structure has a new member m_bMDITabsDocumentMenu: specifies whether MDI tabs have a documents button located right of tabs.
- Added a new registered message BCGM_GETCOLORTOOLTIP. The message is sent to the main application frame when a color box's tooltip is being formatted.
- Examples and Samples
- BCGPControls: added IP Address control and Property Grid button custom color demonstrations.
- BCGPVisualStudioGUIDemo: demonstrates new features of the editor markers.
- BCGPGridExample: added demonstration how to add switch control and custom rating control to the grid.
- ListBoxDemo: demonstrates a new CBCGPDragListBox class.
- PropertyGridMDIDemo: added demonstration how to customize a docking pane caption.
- 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.
- StatusBarDemo: demonstrates status bar pane notification badge.
- 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.
- CBCGPKeyMapDlg: addressed issue with incorrectly filled key list if main application frame has an advanced frame caption pane.
- CBCGPListBox: addressed issue with incorrectly painted list box item when control has "Right Align" style.
- CBCGPPopupMenu: addressed issue with a first menu item repainting after the scrolling performed by the mouse wheel.
- CBCGPPropertySheet: addressed issue with repainting of the separator located below the wizard buttons after property sheet was resized (Wizard mode only).
- CBCGPRibbonBar: addressed issue with QAT icons color when Ribbon bar doesn't replace the frame caption (in some visual themes such as Office 2016 colorful or dark gray).
- CBCGPRibbonCategory::GetImageSize returns now a default image size when a Ribbon category (tab) doesn't have a corresponding image list.
- CBCGPRibbonComboBox: addressed issue with foreground color of control located on the Ribbon tabs row (in some visual themes when tabs area has a dark background).
- 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.
- CBCGPScrollBar: addressed issue with internal control rendering in some cases.
- CBCGPTooltipManager: optimized tooltips memory management.
- 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.