BCGSuite for MFC Changelog

What's new in BCGSuite for MFC 34.0

Nov 30, 2023
  • BCGControlBar Library Professional Edition and BCGSuite for MFC version 34.0 are available! This release includes new themed task dialog, image effects, rotated circular gauge scales, new multi-link control, and other new features and improvements.

New in BCGSuite for MFC 33.5 (May 31, 2023)

  • This release includes Ribbon customization data import/export, Ribbon Designer Key checker tool, DPI-aware toolbar controls and tooltips, breadcrumb items tooltip and other new features and improvements

New in BCGSuite for MFC 33.4 (Feb 14, 2023)

  • This release includes Windows 11 Mica material support, Microsoft Edge WebView2 control, Grid control cell enhanced formatting and other new features and improvements

New in BCGSuite for MFC 33.2 (Aug 29, 2022)

  • This release includes new Office 2021/2022-style Visual Themes, Ribbon edit with auto-complete list, group control with text alignments and multi-line support and other new features and improvements.

New in BCGSuite for MFC 32.2 (Feb 1, 2022)

  • Ribbon Bar:
  • New global variables globalData.m_sizeRibbonCategoryPadding and globalData.m_sizeRibbonPanelPadding allows to specify a Ribbon tab and panel internal paddings. You've to change them prior to the Ribbon bar creation.
  • CBCGPRibbonSlider: added horizontal slider text labels support (see screenshot). A new method SetTextExt allows to specify label on the right side of control.
  • Improved Ribbon commands search: a search box can be located now on the right side of the Ribbon tabs (default) or on the Ribbon caption (both in full and compact modes) (see screenshot). Please note, if the search box is located on caption, Ribbon context captions are not displayed (like in MS Office 2022). CBCGPRibbonCommandSearchOptions structure has the following new members:
  • m_Location - specifies search box location.
  • m_Icon - search box icon: light bulb or magnifier.
  • m_clrHighlighted - background color of highlighted text in the search results menu.
  • m_clrHighlightedText - foreground color of highlighted text.
  • Since the search box can be located on the frame now, you can enable it for non-Ribbon-based applications (toolbar/menu-based applications with a frame caption bar enabled). For this kind of application, the framework scans all toolbars and menu bars for the best matches and displays search results in drop-down menu. You can customize this search by overriding new virtual method QueryElements in CBCGPFrameWnd or CBCGPMDIFrameWnd-derived class Please take a look at BCGPMSOfficeDemo, BCGPVisualStudioGUIDemo and FrameCaptionDemo examples and samples to see this feature in action.
  • CBCGPRibbonEdit: a new virtual method OnDrawIcon allows to draw a custom icon in the search mode.
  • Ribbon Designer: the following new properties were added:
  • Height of the drop-down list in the combo boxes.
  • Extended (right-side) text for the slider control.
  • Command search options.
  • Toolbars and Menus:
  • Improved disabled combo boxes appearance in some visual themes.
  • CBCGPPopupMenu: added highlighted (marked) text support. Call new static method CBCGPPopupMenu::SetHighlightedText to specify a list of words to be highlighted.
  • CBCGPToolbarButton: added 2 new virtual methods QueryElements and AddToSearchResults; override them in CBCGPToolbarButton-derived class to customize command searching (available in the Frame Caption Bar).
  • Dialogs and Forms:
  • CBCGPMessageBox: improved window layout. Width / height ratio is closer to the native Windows message box now.
  • CBCGPDlgPopupMenu: a popup dialog can be created without any corresponding controls such as menu button or ribbon button; a new constructor "CBCGPDlgPopupMenu(CRuntimeClass* pRTI, LPCTSTR lpszTemplateName)" was added in this version.
  • Grid and Report Controls:
  • CBCGPGridColorItem: implemented custom colors serialization (cell does not lose colors anymore after copying or moving).
  • CBCGPGridDateTimeItem: added CBCGPDateTimeCtrl::DTM_CHECKBOX flag support. A grid date/time cell can be created with optional check box (see screenshot). While Data/Time picker has an unchecked state, CBCGPGridDateTimeItem shows a label for empty value. Please see a new optional parameter (LPCTSTR lpszNoDateLabel) in CBCGPGridDateTimeItem's constructor. The following new members were added to CBCGPGridDateTimeItem class: m_bIsChecked, m_strNoDateLabel.
  • BCGP_GRID_FILTERBAR_OPTIONS: if m_clrMarkBackground or m_clrMarkText is CLR_DEFAULT, a default (visual theme-based, returned by CBCGPVisualManager::GetMarkedTextColor) color is used for displaying search results.
  • CBCGPGridCtrl::GetVirtualRow method is a virtual now.
  • Controls:
  • CBCGPListBox: an icon can be added to the caption.
  • CBCGPListBox: AddCaption and AddSeparator methods return the index of the added row.
  • CBCGPStatic: implemented 2 new versions of SetPicture method. First receives HBITMAP and second - CBCGPSVGImage.
  • Miscellaneous:
  • CBCGPChartAxis: a size of resizing band is DPI-aware now.
  • CBCGPGlobalUtils::DrawTextWithHighlightedArea: added multi-line text support.
  • CBCGPPropertyManager: implemented storing / loading of the custom colors (class CBCGPColorProp) and check box (class CBCGPDateTimeProp).
  • CBCGPSVGImage: GetSize method has a new, optional parameter "BOOL bCheckBounds" (FALSE by default). If this parameter is TRUE and SVG does not have a specified size, the size of the bounding rectangle will be returned.
  • CBCGPTabWnd: improved underlined tab animation.
  • CBCGPTagManager: a new method ParseColorArray converts a string with color values to array of COLORREF values.
  • CBCGPVisualContainer: a new method SetScrollOffset specifies scroll offset of the visual container.
  • Examples and Samples:
  • BCGPControls: added color property with custom colors set (see screenshot).
  • BCGPGridExample: improved copy/paste of some custom grid cells ("Cell types" view).
  • BCGPMSOfficeDemo: added command search demonstration: in MS Office 2019 theme, command search appears on the Ribbon caption and can be minimized (as in MS Office 2022 applications) (see screenshot).
  • BCGPVisualStudioGUIDemo: added command search demonstration (see screenshot).
  • FrameCaptionDemo: added command search demonstration.
  • SVGViewDemo: CSVGPreview displays files without predefined size and MDI tab tooltip contains a full path to .SVG file.
  • Fixes:
  • CBCGPRibbonEdit::EnableSearchMode: search mode is not allowed anymore for the combo box (CBCGPRibbonEdit-derived) without edit box.
  • Addressed issue with keyboard accelerators when focus is located on read-only edit control.
  • CBCGPSVGImage: addressed some issues with drawing elements with radial and linear gradients.
  • Ribbon bar: addressed some issues with a keyboard navigation when a Ribbon bar is in the auto-hide mode.
  • CBCGPGridCtrl: addressed some issues with keyword navigation and scrolling by mouse in frozen rows mode.
  • Localization: addressed issue with displaying incorrect characters in some combo boxes with content loaded from the localized resources.
  • CBCGPTabWnd: addressed issue with incorrect redrawing of control edges when tab control is frameless (in some visual themes).
  • CBCGPBaseTabWnd: addressed issue with incorrect tabs area height after calling EnableAutoColor or SetAutoColors methods (in some visual themes).
  • CBCGPEditCtrl: left-side markers are not painted anymore in the compact (autohidden) horizontal scrollbar area.
  • CBCGPRibbonBar: addressed some issues with Ribbon and Ribbon QAT customization.
  • Visual Designer: addressed issue with circular gauge minimal size.

New in BCGSuite for MFC 32.1 (Nov 17, 2021)

  • Added Visual Studio 2022 support:
  • The source files are fully compliant with Visual 2022 C++ compiler.
  • All our examples and samples were thoroughly tested with VS 2022.
  • Evaluation version contains DLLs and libraries required for VS 2022.
  • Improved frames and popup windows appearance in Windows 11 (see screenshot): implemented rounded corners in all popup windows such as menus, floating docking panes and others. In addition, you can specify whether frame (dialog, popup menu and so on) has the rounded corners under Windows 11 (for all visual themes). In addition, frames and dialogs border color is specified by application accent color (see screenshot). By default, the rounded corners are available in visual themes with a standard Windows caption (like Windows Native or Scenic), but you can customize this appearance by setting the following new globalData members:
  • M_FrameCornerType
  • M_DlgCornerType
  • M_MiniFrameCornerType
  • M_PopupMenuCornerType
  • In addition, you may handle a new registered message BCGM_GETWINDOWCORNERTYPE and return an appropriate corner type for specific window. Please take a look at BCGPMSOfficeDemo (see screenshot) and BCGPVisualStudioGUIDemo (see screenshot) examples to see how to customize the corners appearance.
  • Ribbon Bar:
  • Reduced quick access toolbar height when Ribbon simplified mode is activated.
  • CBCGPRibbonButton: added support for medium-size (20x20) icons (used in the Ribbon simplified mode). CBCGPRibbonButton constructor has a new, optional parameter "HICON hIconMedium" and GetMediumIcon / SetMediumIcon methods were added to this class. RibbonSimplifiedMode sample demonstrates now how to use icon resources in the Ribbon.
  • CBCGPRibbonBar: implemented ability to customize minimize button appearance and behavior. You may override a new virtual method CreateMinimizeButton and return your custom, CBCGPRibbonMinimizeButton-derived minimize button. To demonstrate this new feature, we have added a custom minimize button to RibbonSimplifiedMode sample and you can see how to implement an Outlook 365-like simplified mode toggling using the minimize button (see screenshot).
  • CBCGPRibbonBar: a new method GetMinimizeButton returns a pointer to the minimize button.
  • Visual Manager and Themes:
  • Edit box and toolbar edit control: improved controls appearance in Window native theme (see screenshot).
  • Toolbox: improved groups appearance in Window native theme (see screenshot). In the previous product versions, we have used Windows theme API that provides an outdated (Vista-style) look.
  • CBCGPVisualManager: a new method GetWindowCornerType specifies whether a top-level frame/dialog or popup window has rounded corners (Windows 11 only). By default, only visual themes with default (DWM) captions have the rounded corners. Override this method in your custom visual manager if you wish to customize specific windows appearance when application is running under Windows 11.
  • Grid and Report Controls:
  • Implemented Excel-like text overflowing: when you type a lot of text into a cell, it overflows over to the adjacent cells (see screenshot). Call new method CBCGPGridCtrl::EnableTextOverflowing to enable text overflowing and override a new virtual method CBCGPGridItem::IsTextOverflowingAllowed if you wish to disable text overflowing in the specific cell type. BCGPGridExample ("Cell types" view) demonstrates this new feature.
  • Added grid cell selection animation effect: when you are clicking a single cell, selection border will be smoothly moved from a previous location (see screenshot). Please call a new CBCGPGridCtrl::SetChangeSelectionTransitionTime method to enable this feature.
  • Controls:
  • A new class CBCGPCheckComboBox implements a combo box with checked drop-down list (see screenshot). Please take a look at BCGPControls example to see this new control in action.
  • CBCGPEdit: implemented ability to display prompt (cue banner) when control is focused. BCGPControls example demonstrates this new feature.
  • CBCGPTreeCtrlEx: implemented standard tree view notifications such as NM_CLICK, NM_DBLCLK, NM_RCLICK, NM_RDBLCLK and NM_SETFOCUS.
  • Miscellaneous:
  • CBCGPToolBarImages: a new method PrepareSVGImages converts SVG icons to the internal image wheel (bitmap).
  • CBCGPPropList: a new method SetButtonsAppearance allows to specify property buttons appearance. By default, push buttons are always displayed and drop-down buttons became visible when a property is focused. Please take a look at BCGPControls example ("Property grid" view) to see this new feature in action.
  • Smart docking markers:
  • Old raster bitmap resources were replaced with SVG: the docking markers are not blurred anymore when application is rubbing in the high-DPI environment.
  • CBCGPSmartDockingParams has 2 new members: m_clrToneSrcHot and m_clrToneDestHot. Specifying these options allows to colorize custom highlighted markers (see screenshot).
  • Please take a look at SmartDockingDemo sample to see these additions in action.
  • CBCGPTabWnd: a new method SetActiveTabExtraHeight allows to additionally highlight an active tab by adding some extra height (see screenshot). In addition, CBCGPMDITabParams has a new member m_nActiveTabExtraHeight, so you can also use this feature in MDI tabs (see screenshot). Please take a look at TabControl and MDITabsDemo samples to see this new feature in action.
  • Examples and Samples:
  • BCGPControls: demonstrates a new CBCGPCheckComboBox control and edit box cue banner improvements.
  • BCGPGridExample: added text overflowing and cell selection animation demonstrations.
  • BCGPMSOfficeDemo and BCGPVisualStudioGUIDemo: added demonstration how to customize frame / popup corners appearance in Windows 11.
  • RibbonSimplifiedMode: added demonstration of custom minimize button and using icons in the simplified mode.
  • SmartDockingDemo: added demonstration how to use custom SVG-based docking markers.
  • TabControl and MDITabsDemo: added active tab extra height demonstration.
  • Fixes:
  • CBCGPButton: fixed some problems in BCM_SETNOTE and BCM_GETNOTE messages handling.
  • Gantt chart: addressed issue with incorrect initialization of horizontal scroll bar.
  • CBCGPToolBarImages::CreateRegionFromImage: addressed some issues with processing 32bpp images.
  • Popup dialog: addressed issue with incorrect layout initial size when the dialog is resizable.
  • Windows native theme: addressed issue with incorrect global colors after turning off Windows high-contrast black mode.
  • CBCGPEdit: addressed some issues with EM_SETCUEBANNER / EM_GETCUEBANNER messages processing.
  • CBCGPComboBox: addressed some issues with CB_SETCUEBANNER / CB_GETCUEBANNER messages processing.
  • CBCGPRibbonPanel: addressed issue with incorrect layout in the simplified mode when Ribbon gallery control (palette) does not have a text label.
  • CBCGPSVGGradient: addressed some issues with cascading gradient transforms.
  • CBCGPTabWnd: fixed visual artefacts that can appear when control has OneNote, VS 2005 or Left/Right Rounded style and custom (large-size) font is assigned.

New in BCGSuite for MFC 32.0 (Oct 22, 2021)

  • Implemented Ribbon Simplified Mode (see screenshot). In this mode, the ribbon controls are displayed in a single line and panels (groups) are not collapsible. You may specify which commands are available in the simplified mode by calling new method CBCGPBaseRibbonElement::SetSimplifiedModeType. By default, small (16x16) icons will be used in the simplified mode. In addition, you can specify 20x20 icons for the simplified mode. Call new method CBCGPRibbonBar::SetSimplifiedMode to toggle between the simplified and classic Ribbon modes. Please take a look at new sample RibbonSimplifiedMode (see screenshot) and BCGPMSOfficeDemo example to see this new feature in action.
  • The product source code is fully-compatible with latest C++ code standards and technologies:
  • ISO C++ 20 standard.
  • LLVM (CLang-Cl).
  • The product is fully compatible with a final version of Windows 11 (see screenshot)! All product functionalities were thoroughly tested under latest release and all test cases are passed.
  • Ribbon Bar:
  • CBCGPRibbonKeyboardCustomizeDlg: a new registered message BCGM_ON_BEFORE_ASSIGN_RIBBON_KEY is sent to the main frame before assigning a custom keyboard shortcut. Add this message handler and return non-zero if you wish to disallow assign specific keyboard shortcut to specific command.
  • Ribbon Commands Search ("Tell Me"): added support for the split buttons (items with a default command).
  • CBCGPRibbonComboBox: new methods AddSeparator / InsertSeparator allow to add separators to the ribbon combo box (see screenshot).
  • A new virtual method CBCGPRibbonBar::OnPrepareLightImages is called by the framework when a light version if the Ribbon image list needs to be prepared. By default, the framework changes the image luminosity (specified by CBCGPRibbonBar::SetImagesLuminosity). Please take a look at RibbonSimplifiedMode sample to see how to customize the light icons appearance.
  • Improved keyboard navigation for the customized keyboard (if Ribbon categories/panels order and(or) visibility were changed in the Ribbon customization).
  • CBCGPRibbonColorButton: a new virtual method OnDrawColorBox allows to customize a color box appearance (see screenshot). Please take a look at RibbonGadgets sample to see this new feature in action.
  • CBCGPRibbonButton: RibbonButtonOnQAT enumeration has a new member BCGPRibbonButton_Show_As_Switch.
  • Ribbon Designer: added simplified mode support and accessibility (testing) control names.
  • Dialogs and Forms:
  • Added a new global flag globalData.m_bAutoPrepareComboListStyles: set it to TRUE in the application class constructor if you wish to recreate all list boxes and combo boxes with owner-draw (fixed) style. In addition, you may specify this behavior for specific dialogs and forms by overriding a new virtual method IsAutoPrepareComboListStyles (CBCGPDialog, CBCGPDialogBar, CBCGPFormView, CBCGPPropertySheet and CBCGPPropertyPage classes).
  • CBCGPPropertySheet: a new virtual method OnGetPageNotificationBadgeSize allows to customize left-side notification badge dimensions.
  • CBCGPScrollDialog: improved scrolling behavior after dialog resizing.
  • Toolbar buttons/menu items list are not themed now when toolbar customization dialog is not visual manager-enabled.
  • Gauge Controls:
  • CBCGPCircularGaugeImpl and CBCGPLinearGaugeImpl: improved interaction mode for the multi-scale gauges. New methods SetDefaultInteractivePointer and SetDefaultInteractiveScale allow to specify default (used in the mouse down event) pointer and scale.
  • CBCGPBaseVisualObject::SetValue with uiAnimationTime > 0 stops the current animation and start a new one from the last animation finish value.
  • CBCGPNumericIndicatorImpl: added a new type (BCGP_NUMERIC_INDICATOR_FORMAT_HEX_64) to format the value in HEX format with 64-bit precision.
  • Visual container and Visual Designer:
  • CBCGPBaseVisualObject and CBCGPVisualContainer: ExportToBitmap and CopyToClipboard methods have a new optional parameter const CBCGPBrush& brFill.
  • CBCGPEditVisualObject: implemented edit box prompt support - SetPrompt and GetPrompt methods were added to this class.
  • Visual Designer: added Chart Axis names to the default chart object.
  • Visual Manager and Themes:
  • CBCGPTabWnd: improved tab selection appearance (especially, for the multiple-selected colored tabs).
  • Office 2019 theme: added Ribbon tab highlighting and activation animations (see screenshot).
  • Office 2019 theme: improved contextual Ribbon tab appearance (see screenshot).
  • Improved appearance of the default Ribbon control icon in the simplified look (see screenshot).
  • Improved appearance of the "colorless" (BCGPCategoryColor_None) contextual tabs in all visual themes.
  • The Ribbon controls drop-down arrows have a modern look now (see screenshot).
  • Improved appearance of pin optionally located on the list box item right side (see screenshot).
  • Grid and Report Controls:
  • Added "frozen rows" (non-scrollable rows located on top of the grid) support (see screenshot). The following new methods have been added to the grid control:
  • FreezeRows: this function enables the "frozen rows" feature, which allows to keep rows visible while the rest of rows are scrolled vertically.
  • UnfreezeRows: disables the "frozen rows" feature.
  • Please take a look at BCGPGridExample application to see this feature in action.
  • CBCGPGridItem::SetValue method is a virtual now.
  • Implemented support for the grid item selected and overlay icon: SetSelectedImage, GetSelectedImage, SetOverlayImage and GetOverlayImage methods were added to CBCGPGridItem class.
  • Controls:
  • CBCGPTreeCtrlEx: added TVIF_SELECTEDIMAGE and TVIS_OVERLAYMASK support (see screenshot). This addition makes CBCGPTreeCtrlEx more compatible with standard Tree control. Please take a look at BCGPControls example ("Extended tree control" view) to see this feature in action.
  • CBCGPInfoBoxCtrl: you can specify a large text now (without CStatic limitation: 256 characters).
  • CBCGPSliderCtrl: implemented ability to align selection bar by tick marks. New methods SetAlignSelToTickMarks and IsAlignSelToTickMarks were added. Please take a look at BCGPControls example to see this new feature in action.
  • CBCGPColorComboBox: a new method SelectColor allows to select item by RGB value.
  • CBCGPComboBox: added CB_SETCUEBANNER message processing. The cue banner will be converted to the edit prompt.
  • CBCGPComboBox and CBCGPListBox: a new method BCGPModifyStyle allows to re-create control with the same properties (location, data, tab order), but with a new style. Windows doesn't allow to modify some list box/combo box styles (such as owner draw or sorted) after control is created, but sometimes this change is needed (for example, when visual theme is applied to the parent dialog).
  • CBCGPEdit: added EM_SETCUEBANNER message processing. The cue banner will be converted to the edit prompt.
  • CBCGPListBox: implemented alternate (odd/even) row colors (see screenshot). Call new method SetAlternateRowColor to enable/disable this feature. You can see this new appearance in BCGPControls example.
  • CBCGPProgressCtrl: new method StopLighting stops a light effect animation.
  • Graphics Manager:
  • A new static method SetCreateInstanceCallback allows to specify a callback which will be called when a new graphics manager is created by the framework.
  • A new method IsGeometryContainsPoint tells whether a point is located in the specified geometry bounds.
  • MSAA and CodedUI Tests:
  • CBCGPWinUITiles: added MSAA support for scrollbar object.
  • CBCGPVisualContainer: added MSAA support for scrollbar objects.
  • CBCGPButton: implemented accessibility default action for the check box and radio button.
  • Implemented toolbar button/menu item/ribbon control accessibility (testing) names. You may specify these names by calling CBCGPToolbarButton::SetAccTestingName and CBCGPBaseAccessibleObject::SetAccTestingName methods. Set a new global member globalData.m_dwTestingMode = BCGP_TESTING_ACC_NAME if you wish to activate this feature.
  • Miscellaneous:
  • CBCGPToolBarImages: a new method GetResourceID returns an images resource ID (if image list was created from the single resource).
  • CBCGPToolBarImages::ExportToImageList: added a new optional parameter 'BOOL bMask32' (default is FALSE). If this parameter is TRUE, the 32-bit image list will be created with ILC_MASK flag.
  • CBCGPStatusBar: SetPaneWidth and SetPaneInfo methods have a new optional parameter bExactWidth. Set it to TRUE if you wish to specify and exact pane width (without internal paddings).
  • CBCGPSplitterWnd: class constructor has a new, optional parameter bIsScrollBarThemed. Set it to TRUE if you wish to enable themed scroll bars inside the splitter panes.
  • CBCGPFileDialogEx: new virtual methods OnFolderChange (called after current folder changing) and OnTypeChange (called after file type changing) were added to this class. Override them if you wish to customize the extended file dialog behavior and/or appearance.
  • CBCGPGanttChart: SelectItem has a new, optional parameter bStartDrag. When this parameter is FALSE, you may select an item without ability to drag it.
  • CBCGPGlobalUtils: added method AnimateRect. Call this method to calculate an intermediate area during transition between 2 rectangles.
  • CBCGPCalculator: improved keyboard support; added a "press button" visual feedback and implemented standard Windows keyboard shortcuts.
  • CBCGPToolbarComboBoxButton: a new method FindItemData returns an index of item with specified data.
  • Chart control: improved hit-testing used in the interactive mode.
  • Notification badges: you may specify INT_MAX value to draw badge without number or ellipses.
  • CBCGPRegistry: a new method Reset rolls-back m_hKey to the initial value (should be called after CBCGPRegistry::Close!)
  • Added new member to BCGPGLOBAL_DATA: bIsWindows11. This variable is TRUE if application is running under Windows 11 or future versions.
  • Examples and Samples;
  • BCGPControls: added demonstration of list box alternate colors, align selection bar by tick marks in the slider control and overlayed/selected icons in extended tree control.
  • BCGPGaugesDemo: improved interactive mode demonstration.
  • BCGPGridExample: added frozen rows demonstration.
  • BCGPMSOfficeDemo: added Ribbon simplified mode demonstration.
  • DrawCli: demonstrates how to use CBCGPSplitterWnd for creating a splitter with themed scroll bars.
  • NotificationBadgesDemo: added badge without number (value is INT_MAX) demonstration.
  • RibbonGadgets: added demonstrations how to create a color picker with custom shape and combo box with separators.
  • RibbonSimplifiedMode (see screenshot): this new sample demonstrates how to create a simplified Ribbon bar and customize Ribbon controls appearance in the simplified mode.
  • Fixes:
  • Toolbar buttons/menu items list is not themed now when toolbar customization dialog is not visual manager-enabled.
  • Addressed issue with missing context menu that should appear upon Press and Hold gesture event in some standard controls (Visual Studio 2010 or later).
  • CBCGPTabWnd: addressed issue with incorrect tabs area height when all tabs are hidden and control has Pointer or Underline style.
  • CBCGPShellList: folder and file items are sorted separately now if the list is sorted by date.
  • CBCGPSliderCtrl: addressed issue with reversed order in non-themed control.
  • CBCGPSVGImage: addressed some issue with default attributes specified in "svg" node.
  • CBCGPPropList: improved behavior of clicking non-selected property button area. In the previous versions unexpected OnClick event was fixed in this case.
  • CBCGPGroup: addressed issue with incorrect text color in non-themed control.
  • CBCGPBaseVisualCtrl: OnWndEnabled(FALSE) is called when control is initially disabled.
  • CBCGPWindowsNavigator: addressed issue with loading application resources when the navigator window is active.
  • CBCGPComboBox::SetImageList: addressed issue with image height calculation when SVG-based image list is being loaded.
  • CBCGPGroup: addressed some redrawing issues.
  • CBCGPListBox: addressed issue with incorrect caption row height when control has Owner Draw Fixed style.
  • CBCGPProgressCtrl: addressed issue with border redrawing in the high-contrast mode.
  • CBCGPCircularGaugeImpl: addressed issue with incorrect level bar position when gauge is placed inside the scrollable container.
  • CBCGPGlobalUtils::GetCaptionButtonSize: fixed Windows OS bug WM_GETTITLEBARINFOEX on Windows 10 with Multi-monitors and DWM.
  • CBCGPGridCtrl: addressed issues in control non-client area when WS_EX_CLIENTEDGE extended style is specified.
  • Docking panes: smart docking markers are DPI-aware now.

New in BCGSuite for MFC 31.3 (Jun 15, 2021)

  • This release includes new property manager, themed folder picker dialog, edit control font scaling and other new features and improvements.

New in BCGSuite for MFC 31.2 (Apr 15, 2021)

  • Ribbon Bar:
  • Improved Ribbon commands search:
  • CBCGPRibbonCommandsMenuCustomItems has a new member m_strInputPrev (contains a previously typed text).
  • New member of CBCGPRibbonCommandSearchOptions structure m_bAlwaysRebuildResultsMenu specifies whether the search results list should be always re-created. By default, this member is FALSE.
  • Added new virtual method CBCGPVisualManager::GetRibbonCommandsComboIcon. Override this method in your custom visual manager if you wish to replace a default (light bulb) icon with your own.
  • Added ability to specify a Minimize button location: this button can be positioned on the right side of the tabs row (as in MS Office 2010 applications) - see screenshot - or on the bottom-right side of category area (like MS Office 2013 - 2019) - see screenshot. Call new method CBCGPRibbonBar::SetMinimizeButtonLocation to specify the Minimize button location or set new CBCGPAppOptions member m_bRibbonMinimizeButtonAutoLocation to TRUE (in this case the minimize button will automatically appear on the bottom-right side of the category area if Office 2013-2019 visual theme is activated).
  • Toolbars and Menus:
  • BCGM_RESETTOOLBAR registered message: LPARAM contains a pointer to CBCGPToolBar object now.
  • CBCGPToolBar::SetNonPermittedCommands: added a new optimal parameter "bCheckForChanges" (FALSE by default). If this parameter is TRUE and list of non-permitted commands is not changed, no any actions are performed.
  • New class CBCGPToolbarSlider implements a CBCGPToolbarButton-derived toolbar control with embedded CBCGPSliderCtrl (see screenshot). Please take a look at Slider and GraphicsManagerDemo samples to this control in action.
  • Dialogs and Forms:
  • CBCGPPropertySheet: added a new virtual method IsPageTransitionReversedOrder. Override this method if you wish to specify a custom page transition direction.
  • New method CBCGPPropertySheetCtrl::GetRecommendedSize returns a size required for displaying all pages and navigation (tab) control. Please take a look at PropSheetDemo sample to see how to use this method.
  • MDI Windows and Tabs:
  • Improved a frame captions bar:
  • Added ability to automatically create custom caption buttons on the detached frame captions: CBCGPFrameCaptionBarOptions has a new member m_bSyncButtonsBetweenFrames.
  • Implemented displaying caption right of MDI tabs (see screenshot): CBCGPRibbonCaptionMDITabsOptions has a new member m_bDrawTitle.
  • Please take a look at FrameCaptionDemo sample to see these additions in action.
  • CBCGPMDIFrameWnd has a new virtual method GetFrameCaptionMDITabsTitle. By default, this method returns a frame title, but if you wish to display another caption right of MDI tabs located on the frame caption, you may override this method.
  • 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:
  • CBCGPTabWnd: implemented tab icon location (see screenshot). Prior to this version the icon was always positioned left of label, but now you may specify the icon position by calling new method CBCGPTabWnd::SetIconLocation. Please take a look at TabControl sample to see this new feature in action.
  • 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:
  • Implemented Windows 10 light/dark modes support:
  • A new method BCGPGLOBAL_DATA::IsAppDarkMode tells whether default application mode is a dark.
  • Added new registered message BCGM_ONWINDOWSAPPMODECHANGED. This message is sent to the main application window when Windows app mode is changed.
  • To take advantage of this new feature, in your application startup code and BCGM_ONWINDOWSAPPMODECHANGED message handler, set appropriate visual theme based on globalData.IsAppDarkMode() return value (e.g. Office 2016 Dark / Office 2016 White). Please take a look at BCGPEdgeDemo example to see this feature in action.
  • Added new registered message BCGM_ONGLOBALFONTSCHANGED: sent to the main application window when global fonts (like globalData.fontRegular) are updated.
  • A global method BCGPTrackMouse is exportable now.
  • CBCGPToolBarImages: added new global member "m_bAlwaysCreateShadowImage" (default is FALSE). If this member is TRUE, the shadow image is created in all visual themes.
  • CBCGPHotSpotImageCtrl: added support for tooltips specified in SVG file ("title" and "desc" attributes). Please take a look at BCGPVisualStudioGUIDemo example ("Start page") to see this feature in action.
  • CBCGPBreadcrumb::SelectSubPath: added new optional parameter "delimiter" ('' by default).
  • CBCGPToolTipParams: added new flag "m_bHideDuplicatedDescription" (FALSE by default). If this flag is TRUE and tooltip name is the same as description, only name will be displayed in tooltip.
  • 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.
  • Shell manager: added custom ("Quick access") folders support (see screenshot). These folders can be specified using new CBCGPShellManager's class method AddCustomFolders and will be displayed in all CBCGPShellTree controls. If you don't wish to display custom folders in specific Shell tree control, please call a new CBCGPShellTree's method SetDisplayCustomFolders with parameter bSet = FALSE. Please take a look at ThemedFileDialog sample to see this new feature in action.
  • A new virtual method CBCGPGridCtrl::OnKeepGroupWithChildrenOnNewPrintPage specifies whether a grid group should be printed from the new page. By default, it returns FALSE.
  • 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.
  • BCGPEdgeDemo: added default (specified by the Windows 10 settings) visual theme (light or dark).
  • BCGPGaugesDemo: demonstrates new digital indicator features such as state, drawing invisible segments and internal padding.
  • BCGPVisualStudioGUIDemo: added demonstration how to create SVG-based start page.
  • MMStyleExample: this example was fully redesigned (see screenshot):
  • Added demonstration how to create toolbar with different image lists per state (normal, highlighted, pressed and disabled).
  • Added volume knob control.
  • Added digital numeric indicator displaying the current position.
  • Added slider which allows to change the current position.
  • Added dark/light themes.
  • GraphicsManagerDemo: added geometries scaling demonstration (using new CBCGPToolbarSlider control) - see screenshot.
  • Slider: demonstrates a new CBCGPToolbarSlider control.
  • SVGViewDemo: added SVG background support and improved drawing SVG with custom view box.
  • TabControl: added demonstration how to change a tab icon location.
  • ThemedFileDialog: added custom folders demonstration (see screenshot).
  • PropSheetDemo: demonstrates how to create a property sheet control with optimized (recommended) size and property sheet with tab icons located on bottom (see screenshot).
  • FrameCaptionDemo: added MDI tabs caption demonstration.
  • RibbonGadgets: demonstrates how to specify Ribbon minimize button location.
  • 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.
  • CBCGPPopupMenu: addressed issue with displaying incorrect numbers for recent files if file index is 10 or greater.
  • CBCGPStatic: addressed several issues with drawing themed control borders.
  • CBCGPGanttChart: corrected header text label vertical offset.
  • CBCGPSVGImage: addressed some issues with SVG definitions loading.
  • CBCGPPropertySheet: addressed issue with incorrect dialog height in case of large-size tab control.
  • 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.

New in BCGSuite for MFC 31.1 (Feb 2, 2021)

  • Implemented auto-hidden scrollbars (see screenshot) for all controls such as list boxes, forms, edit boxes and others. When a scroll bar is inactive (the mouse cursor is not located inside it), only compact (thin) thumb box will be drawn. When you move the mouse inside the scroll bar, the bar will be fully drawn. You may enable this appearance by setting new member globalData.m_bAutoHideScrollBars to TRUE. Alternatively, you may call EnableAutoHideScrollBar method for specific control/form. Please note that this feature is not available for some old visual themes such as Office 2007/2010 or VS 2010. You can see auto-hidden scroll bars in Office 2013/2016/2019 or VS 2012/2013/2017/2019 themes only. In addition, auto-hidden scroll bars were implemented in the visual containers and controls (see screenshot).
  • Tasks Pane and Toolbox:
  • Implemented ability to show/hide specific toolbox buttons and pages. The following new methods were added:
  • CBCGPToolBoxButton::SetVisible
  • CBCGPToolBoxButton::IsVisible
  • CBCGPToolBoxPage::SetVisible (extended toolbox only).
  • CBCGPToolBoxPage::IsVisible
  • Improved toolbox items layout: the buttons are not disappearing now when toolbox is narrow.
  • Chart Control:
  • BCGPChartMarkerOptions: added new marker shape MS_CROSS (see screenshot).
  • CBCGPChartHistogramSeries: a new method SetSizePercent allows to specify a histogram column width.
  • CBCGPChartLongSeries: a new method SetOrderedXValues allows to specify whether data points are not ordered by X axis. By default, the data points are ordered.
  • CBCGPChartDiagram3D: a new method SetWallsColor allows to specify 3D chart walls base color. In addition, CBCGPChartVisualObject::SetDiagramFillColor has a new optional parameter bSetWallsColor - set it to TRUE if you want to apply a diagram fill color to the 3D chart walls.
  • Added ability to change 3D chart perspective by the mouse wheel: new method CBCGPChartDiagram3D::EnableChangePerspectiveByMouseWheel allows to enable/disable this feature. Please take a look at BCGPChartExample application to see this feature in action.
  • Controls:
  • CBCGPListBox: improved multiple selection appearance when user selects items by mouse.
  • CBCGPStatic: implemented Caption mode (see screenshot). Call new method CBCGPStatic::SetCaptionMode to enable/disable this mode for specific static control.
  • MSAA and CodedUI Tests:
  • Improved accessibility names for all gauge controls.
  • Ribbon category: added accessibility support for horizontal scroll buttons.
  • CBCGPColorButton: accessibility value contains RGB values now.
  • CBCGPToolbarLabel has a correct accessibility role now.
  • Miscellaneous:
  • Improved C++ conformance: addressed some issues with compiling library with /permissive- and /std:c++latest options.
  • CBCGPPopupDlg: methods UpdateContent and UpdateLayout are virtual now.
  • CBCGPPopupMenu: scroll up / scroll down / tear-off tooltip is themed now.
  • CBCGPToolbarDateTimeCtrl and CBCGPToolbarDateTimeCtrl2: a new optional parameter "time" allows to specify initial time in the class constructor.
  • CBCGPDrawManager::GetContrastColor: added a new optional parameter "dblRatio" (default value is 0.0). If this parameter is between 0 and 1, the returned color will be multiplied to this value.
  • CBCGPToolBarImages: Load and LoadStr methods have a new, optional parameter lpszResType which specifies the resource type to be loaded. If this parameter is NULL (default), the first matched resource type will be used.
  • CBCGPBaseVisualCtrl: added new static method CloseActivePopup - closes active popup (created by CBCGPBaseVisualCtrl::CreatePopup) visual control.
  • CBCGPShellList, CBCGPShellBreadcrumb and CBCGPShellTree: added a new virtual method GetShellItemAttributes (by default, we're calling g_pShellManager->GetItemAttributes here). Override this method if you wish to optimize shell item attributes reading.
  • CBCGPGraphicsManager: implemented native MFC serialization (using CArchive) for the following classes:
  • CBCGPColor
  • CBCGPBrush
  • CBCGPStrokeStyle
  • CBCGPTextFormat.
  • Examples and Samples:
  • BCGPCalendarDemo: added auto-hide scroll bars demonstration (new option in the View menu).
  • BCGPChartExample: added 3D chart perspective by the mouse wheel demonstration.
  • BCGPControls: added auto-hide scroll bars demonstration (added new toolbar button).
  • BCGPDigitalDashboard: added auto-hide scroll bars in visual container demonstration.
  • BCGPExplorer: demonstrates how to improve Shell list performance by overriding GetShellItemAttributes method in CBCGPShellList-derived class.
  • BCGPMSOfficeDemo: added auto-hide scroll bars demonstration (new option in "Options" dialog).
  • BCGPVisualStudioGUIDemo: added auto-hide scroll bars demonstration (new option in "Options" dialog).
  • PropertyGridMDIDemo: added demonstration how to save the chart in MFC document archive and load it from the file.
  • ToolBoxDemo: added demonstration how to show/hide specific toolbox buttons and pages.
  • WinUITilesDemo: added auto-hide scroll bars in WinUI Tiles control demonstration.
  • Fixes:
  • BCGPGLOBAL_DATA::DrawParentBackground: addressed possible recursive call to this method.
  • CBCGPCaptionBar: addressed issue with a hidden link accessible by mouse.
  • CBCGPCheckListBox: addressed issue with drawing check box in some visual themes.
  • CBCGPMDIChildWnd: addressed issue with incorrect backstage view behavior when torn-off MDI child is activated from the Windows task bar.
  • CBCGPMenuBar: addressed issue with incorrect keyboard navigation when menu bar has separator(s) between the menu items.
  • CBCGPRibbonEdit: fixed incorrect edit control position when ES_RIGHT style is specified.
  • CBCGPTasksPane: addressed issue with incorrect controls layout after group expanding/collapsing transition is finished.
  • CBCGPToolbarEditBoxButton: addressed issue with incorrect button bounds when text label is located on the bottom.
  • CBCGPFileDialogEx: fixed bug with missing ZIP files in the file list pane.
  • CBCGPIPAddressCtrl: addressed issue with deleting embedded edit controls.
  • CBCGPDateTimeCtrl and CBCGPDurationCtrl: addressed issue with a spin control flickering when control is being moved/resized.
  • CBCGPScrollDialog: addressed issue with restoring dialog placement.
  • CBCGPDropDownToolbarButton: the icon is correctly rendered now when toolbar large icons mode is enabled.
  • CBCGPEditCtrl: addressed issue with printing text with a dark background.
  • CBCGPVisualManager::GetLinearGaugeColors returns correct (contrast) color in the high-contrast mode now.
  • CBCGPChartAxis: addressed issue with incorrect calculation of the huge (exceeded in64) axis values.
  • Dialogs and forms: improved info tips drawing performance when the dialog layout is being changed.

New in BCGSuite for MFC 31.0 (Nov 16, 2020)

  • This release includes new CBCGPMultiViewFrameWnd class (implements a multi-view single-document interface), themed CBCGPNumericIndicatorImpl, pasting Grid data from external data sources, property grid groups with checkboxes, improved Ribbon bar layout in high-DPI mode and other new features and improvements.

New in BCGSuite for MFC 30.6 (Sep 28, 2020)

  • Implemented WinAppDriver (Windows Application Driver) support. All accessibility methods were adapted for this new technology and starting this version you may use WinAppDriver for your applications automation and testing.
  • Dialogs and Forms:
  • CBCGPPropertySheet: added support of the page swipe gesture. Now you can easily go to the next or previous page when your application is running in tablet or other touch-enabled system. Call new method CBCGPPropertySheet::EnablePageSwipeGesture to enable this feature. Please take a look at PropSheetDemo sample application to see this new feature in action.
  • CBCGPPropertySheet: SetActivePageWithEffects method is a virtual now.
  • MDI Windows and Tabs:
  • CBCGPMDIFrameWnd::EnableWindowsNavigator has a new, optional parameter 'pOptions'. This is a pointer to new CBCGPWindowsNavigatorOptions which allows to customize the Windows Navigator appearance.
  • CBCGPMDITabParams and CBCGPRibbonCaptionMDITabsOptions classes have a new member 'm_InsertedTabPosition' - specifying where new MDI tab is inserted. Please take a look at MDITabsDemo sample application to see this feature in action.
  • Tasks Pane and Toolbox:
  • CBCGPTasksPane: added 2 new virtual methods OnBeforeDrawTask and OnAfterDrawTask. Override these methods if you wish to customize specific task(s) appearance or prevent drawing some task(s).
  • CBCGPTasksPane::RemoveAllTasks has a new, optional parameter 'bRedraw'.
  • Chart Control:
  • CBCGPChartAdvancedFormula: added new moving average type MA_CUMULATIVE.
  • CBCGPChartAdvancedFormula: added new methods SetOutputSeriesType and SetOutputSeriesCategory. By calling these methods you may specify a result series type and category.
  • Added new class CBCGPChartMAENVFormula: implements "Moving Average Envelopes" for the Stock charts.
  • CBCGPChartMACDFormula: added 2 result calculation types - VA_MACD - Moving Average Convergence/Divergence Oscillator (current calculation type) and VA_PPO - Percentage Price Oscillator (new). Added 2 new methods: SetValueType and GetValueType.
  • CBCGPBaseChartStockSeries::StockSeriesType enumerator has a new member "SST_BAR_HLC": set it if you wish to display "High-Low-Close" values, but don't display "Open" values.
  • CBCGPChartStockSeries: added Heikin-Ashi Candlesticks data calculation type. Please use a new enumerator StockChartType to specify the type (should be specified in the class constructor).
  • CBCGPChartVisualObject: a new method SetOptimizedDiagramArea allows to optimize diagram's layout after one of axes moves inside/outside the diagram's area.
  • Grid and Report Controls:
  • CBCGPGridColumnChooser: this class is exportable now and can be customized according to customer's needs.
  • CBCGPGridCtrl: implemented ability to enable/disable Grid zooming by the mouse wheel (when Ctrl is pressed) or gesture zoom. EnableZoom and IsZoomEnabled methods were added.
  • New method CBCGPGridCtrl::SetFilterBarText allows programmatically specifying a filter bar content.
  • Controls:
  • CBCGPComboBox doesn't redraw itself anymore when control receives CB_SETCURSEL message and WPARAM contains an index of already selected item. If for some reason this improvement affects your application, just set a new global flag CBCGPComboBox::m_bOptimizedSelection to FALSE.
  • CBCGPGroup: implemented ability to hide/show all controls located inside the group. Optionally, you may specify a text label which appears in the middle of group box when controls are hidden. Call new method CBCGPGroup::SetGroupControlsVisible to hide/show the controls.
  • CBCGPEditListBox: a new method RemoveAllButtons removes all edit list buttons.
  • CBCGPTabWnd: implemented new tab default position. In the previous product version, a new tab was automatically inserted to the right side (after all tabs). Starting this version, you can specify position by calling new CBCGPTabWnd method SetInsertedTabPosition. A new enumerator InsertedTabPosition describes where a new tab should be inserted: InsertedTabOnTheRight (default), InsertedTabOnTheLeft, InsertedTabAfterActiveTab or InsertedTabBeforeActiveTab.
  • CBCGPDateTimeCtrl: implemented touch mode. Upon click/touch control, a popup date/time list will appear. Call new method SetTouchMode to enable/disable this mode. Please take a look at BCGPControls example to see this mode in action.
  • CBCGPDateTimeCtrl: implemented ability to display a new date/time list popup window when user clicks drop-down button. DTM_DROPLIST flag was added to this control.
  • A new class CBCGPDateTimeList implements touch-friendly date-time picker (see screenshot). This control can be created either as dialog/form child window or popup window. Please take a look at BCGPControls example to see this new control in action.
  • MSAA and CodedUI Tests:
  • CBCGPButton: if description (text below label) is specified, get_accDescription method returns this text now.
  • CBCGPCalendar: get_accValue returns a range of selected dates now (if multiple days selection is specified).
  • CBCGPCalendar: added accessibility support to popup month picker window.
  • CBCGPPropList: added accessibility support to commands area (optional list of command links located at control bottom).
  • CBCGPScrollBar: improved accessibility support.
  • CBCGPTasksPane: improved accessibility support.
  • CBCGPRibbonPanelMenuBar: improved accessibility support.
  • CBCGPDateTimeCtrl: improved accessibility support.
  • Edit control:
  • Implemented ability to draw text with a syntax highlighting on the selected or marked areas (see screenshot). The following new methods were added to CBCGPEditCtrl class:
  • EnableSyntaxHilightingOnSelection
  • IsSyntaxHilightingOnSelection
  • EnableSyntaxHilightingOnColorLine
  • IsSyntaxHilightingOnColorLine
  • EnableSyntaxHilightingOnHiliteMarkers
  • IsSyntaxHilightingOnHiliteMarkers.
  • Please take a look at EditorMarkers sample application to see this new feature in action.
  • CBCGPEditCtrl: new virtual method OnGoToNextMarker allows to customize markers navigation behavior.
  • Miscellaneous:
  • A new class CBCGPTextGaugeCtrl provides an easy way to add text gauge (CBCGPTextGaugeImpl) to the dialog or form view.
  • All calls to lstrcpy were replaced with StringCchCopy (for Visual C++ 2008 or later).
  • CBCGPTagCloud: implemented visual manager support. New methods SetVisualManagerTheme and IsVisualManagerTheme were added to this class.
  • CBCGPPlannerManagerCtrl: implemented vertical scrolling during appointment dragging and time range selection. New methods EnableDragScroll and IsDragScrollEnabled were added to this class.
  • Examples and Samples:
  • BCGPChartExample: added demonstration of new stock chart features (SST_BAR_HLC series type and "Heikin-Ashi Candlesticks").
  • BCGPCalendarDemo: added week number type demonstration.
  • BCGPGanttDemo: demonstrates usage of new date/time list in the Gantt grid (see screenshot).
  • BCGPGridExample: demonstrates usage of new date/time list (see screenshot).
  • BCGPVisualStudioGUIDemo: added demonstration of syntax highlighting inside selected arears and colored lines (see screenshot).
  • EditorMarkers: added demonstration of syntax highlighting inside colored areas (see screenshot).
  • BCGPControls: this example has been fully redesigned (see screenshot). This example was unified with many samples and now it demonstrates functionality of most library controls. The following samples are not included in the product installation anymore:
  • BreadcrumbDemo
  • ComboBoxDemo
  • EditBoxDemo
  • GroupBoxDemo
  • InfoBoxDemo
  • ListBoxDemo
  • ListCtrlDemo
  • TreeCtrlDemo
  • FrameCaptionDemo and MDITabsDemo: added demonstration how to specify a new MDI tab position.
  • PropSheetDemo: demonstrates new "Page Swipe Gesture" feature.
  • Fixes:
  • CBCGPBreadcrumb: keyboard focus is returning back to breadcrumb control when user clicks Esc in the place-editing mode.
  • CBCGPCalculator: addressed issue with drawing icons in right-to-left mode.
  • CBCGPCalendar and CBCGPPlannerManagerCtrl: fixed incorrect week number values at the end/start of the year in some specific cases.
  • CBCGPColorDialog: addressed issue with losing color when user double-clicks the hexagon cell (located on the first page).
  • CBCGPExplorerToolBar: addressed issue with layout when the pane was created below of the Ribbon bar.
  • CBCGPDropDownList: fixed bug with incorrect row height when a custom (large-size) font was specified.
  • CBCGPComboBox: addressed issue with incorrect drawing of drop-down list when combo box doesn't have items (is empty).
  • CBCGPTreeCtrlEx: addressed issue with a row height calculation when control has large-size icons.
  • CBCGPRibbonPaletteButton: addressed issue with drawing SVG icons.
  • CBCGPDialog: the dialog is correctly processing SC_CONTEXTHELP system command now.
  • CBCGPEditCtrl: addressed issue with italic fonts.
  • CBCGPGanttControl: addressed some issues with insertion of the new Gantt items.
  • CBCGPEditCtrl: addressed some issues with displayed colored areas.
  • CBCGPGridCtrl: addressed issue with non-contrast alternate colors in some visual themes.
  • CBCGPMDIFrameWnd: addressed issue with incorrect enabling MDI tear-off frame when some modal dialog was launched from the Ribbon backstage view.

New in BCGSuite for MFC 30.2 (Dec 16, 2019)

  • This release includes new Office 2019-style visual theme, improved shell controls and other new features and improvements.

New in BCGSuite for MFC 30.1 (Oct 1, 2019)

  • This release includes themed find/replace dialogs, chart bar/column shapes, ribbon switch control and other new features and improvements.

New in BCGSuite for MFC 30.0 (May 29, 2019)

  • This release includes Visual Studio 2019 Preview support, VS 2019-style visual manager and other new features and improvements.

New in BCGSuite for MFC 29.0 (Feb 19, 2019)

  • This release includes notification badges support, advanced frame caption bar, editor error indication and other new features and improvements.

New in BCGSuite for MFC 27.3 (Aug 2, 2018)

  • This release includes Ribbon Bar Auto-hide mode, new chart color themes, "switch"-style Boolean property and other new features and improvements.

New in BCGSuite for MFC 27.3 (Jul 16, 2018)

  • This release includes Extended tree control notifications and filter bar, Calendar bar with improved month picker, Grid control filter text highlighting and other new features and improvements.

New in BCGSuite for MFC 25.20 (Feb 1, 2017)

  • This release includes Visual Studio 2017 RC support, new Calendar Schedule View, Tab Control enhancements and other new and improved features.

New in BCGSuite for MFC 25.10 (Dec 1, 2016)

  • This release includes new Box-Plot charts and chart error bars, improved Explorer-style toolbar, Outlook Bar "minimize" mode and many new and improved features.

New in BCGSuite for MFC 25.0 (Jul 6, 2016)

  • This release includes MS Office 2016-like Black color theme, advanced tree control, application state color and many other new and improved features.

New in BCGSuite for MFC 24.40 (Apr 13, 2016)

  • This release includes:
  • improved Office-like control info tips
  • new Chart color themes
  • Property pages with background images
  • new online help and many other new and improved features.

New in BCGSuite for MFC 24.2 (Aug 13, 2015)

  • Full compatibility with a final version of Windows 10. This release includes Visual Studio 2015 support, MS Office 2016-style themes, improved Calendar look, Ribbon bar, Grid and Report Controls and more.

New in BCGSuite for MFC 24.1 (Apr 22, 2015)

  • This release includes MS Office 2013-like Ribbon Start Page, exporting grid data to CSV format, Dialogs with Expandable Area, Support for Windows 10 and Visual Studio 2015 (Technical Previews), Improved Grid Control, Message Box and many other new and improved features and bug fixes.

New in BCGSuite for MFC 24.0 (Mar 9, 2015)

  • This release includes Tear-off MDI child windows, Internal window scrollbars themming support, extended Planner Control, improved Chart Control and many other new and improved features and bug fixes.

New in BCGSuite for MFC 23.2 (Nov 26, 2014)

  • This release includes Ribbon Application Modes, extended Application Keyboard Navigation, improved Charts and Gauges controls and many other new and improved features and bug fixes.
  • The product is ready for use in Windows 10 preview.

New in BCGSuite for MFC 23.1 (Sep 5, 2014)

  • This release includes new features: Animation Manager support, custom controls in Visual Designer, improved high-DPI support, improved grid and chart controls and many other new and improved features and bug fixes.

New in BCGSuite for MFC 23.0 (May 22, 2014)

  • This release includes new features: Digital Dashboards, support Grid Scaling, Popup Dialogs and other new features, improvements and bug fixes.

New in BCGSuite for MFC 22.1 (Apr 7, 2014)

  • This release includes new Visual Studio 2013-style visual manager, Grid cell conditional formatting, Grid Sparklines, Chart data table, new Chart color themes, Coded UI Tests support, page transition effects, WinUI Tiles customization and more.

New in BCGSuite for MFC 22.0 (Nov 28, 2013)

  • This release includes Coded UI Tests support, page transition effects, WinUI Tiles customization and more

New in BCGSuite for MFC 21.0 (Aug 10, 2013)

  • Included Windows 8.1 and Visual Studio 2013 support
  • New VS 2012 blue theme
  • Large (Windows 8.1-like) WinUI tiles
  • Ribbon touch input mode
  • Improved Visual Studio 2012-style visual themes and more

New in BCGSuite for MFC 20.0 (Mar 15, 2013)

  • Extended Touch/Gesture support, new features in WinUI Tiles Style and improvements in Chart Control, Gauges and Visual Container.
  • Bug fixes and other changes.

New in BCGSuite for MFC 19.0 (Oct 6, 2012)

  • This release is fully-compatible with Visual Studio 2012 and fully tested under Windows 8
  • Improved WinUI Tiles Style
  • Advanced Ribbon Bar, Visual Designer, Grid and Chart Controls
  • Bug fixes and other improvements

New in BCGSuite for MFC 17.1 (Apr 4, 2012)

  • This release includes new Visual Studio 11-style Visual Manager, improved Diagram control, support for the diagram in Visual Designer, Tree Map control and more.

New in BCGSuite for MFC 16.1 (Oct 25, 2011)

  • This maintenance release includes Windows 8 and Visual Studio 11 support, Chart control improvements and more