What's new in BCGControlBar Professional Edition 34.1

Mar 20, 2024
  • This release includes support for Windows 10/11 Font Icons, introduces a new class called CBCGPWebView2View (encapsulates CBCGPWebView2Ctrl), and brings enhancements to Ribbon and Visual designers, along with other new features and improvements.

New in BCGControlBar Professional Edition 34.00 (Nov 30, 2023)

  • 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 BCGControlBar Professional Edition 33.60 (Sep 12, 2023)

  • This release includes tab control notification badges, improved diagram chart, single-category Ribbon bar with hidden tab and other new features and improvements.

New in BCGControlBar Professional Edition 33.50 (May 31, 2023)

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

New in BCGControlBar Professional Edition 33.4 (Feb 14, 2023)

  • Added Windows 11 Mica material support. This feature is available for the frames with non-themed (standard) non-client area (e.g., Windows Native, Office 2010 or Scenic visual themes). You do not have to make any changes in your source code - the appearance will be automatically applied to the following UI areas:
  • Ribbon bar caption and tabs area (see screenshot)
  • Dialog boxes with aero area (please take a look at SkinnedDialog sample where transparent area has this effect - see screenshot).
  • Explorer toolbar (see screenshot).
  • Property sheet "Aero Wizard" mode (see screenshot).
  • In addition, BCGCBProDwmExtendFrameIntoClientArea and globalData.DwmExtendFrameIntoClientArea methods have a new, optional parameter nSystemBackdropType - set it to non-zero to apply the mica effect to your window.
  • Implemented the Microsoft Edge WebView2 support: a new class CBCGPWebView2Ctrl allows you to use the latest web technologies in your application with few lines of code! To see how to use this new control, please take a look at our examples BCGPEdgeDemo and BCGPInternetExplorerDemo (yes, we demonstrate how to combine a new control with classic IE look and feel!).
  • Ribbon Bar:
  • CBCGPRibbonBar: method GetElementsByID has a new, optional parameter 'bIncludeActivePopup' (specifies whether Ribbon control located on the active popup panel should be added to search results).
  • CBCGPRibbonLabel: a new, optional parameter nID was added to the class constructor, so you will be able to access this Ribbon control by ID and modify it.
  • CBCGPRibbonSlider: added slider progress mode (see screenshot). Call a new method EnableProgressMode to enable/disable this mode. Please take a look at RibbonGadgets sample to see this feature in action.
  • Ribbon Designer: added "Preserve Elements Order" flag in the Ribbon panel options (by default, the Ribbon controls layout is optimized by the framework, but now you can disable this optimization and keep an original order).
  • Ribbon QAT customize page: you may display custom (created on the Ribbon Customize page) tabs (categories) in the Categories combo box. To enable this feature, please set a new parameter bDisplayCustomTabsInQATPage of CBCGPRibbonCustomize to TRUE or call new method CBCGPRibbonCustomizeQATPage::SetDisplayCustomTabs.
  • Toolbars and Menus:
  • CBCGPToolbarOptions: added a new member m_lstCustomizePages which contains a list of classes of the custom (user-defined) pages that will be added to customization property sheet.
  • CBCGPToolbarCustomize: added 2 new flags BCGCUSTOMIZE_RESIZABLE (create resizable toolbar customization property sheet) and BCGCUSTOMIZE_LOAD_PLACEMENT (load recent position and size of toolbar customization property sheet, used only if BCGCUSTOMIZE_RESIZABLE is specified). Please take a look at new sample ToolbarCustomizeDemo to see this feature in action.
  • CBCGPToolbarSlider: improved control appearance on the toolbar customization dialog.
  • Dialogs and Forms:
  • BCGPMessageBox: improved dialog appearance when caption width exceeds the screen size. In addition, a new global variable CBCGPMessageBox::m_nLimitCaptionWidth allows to limit dialog width in case of very long caption text. E.g., if you set this variable to 70, the caption width will be limited by 70 percent of the screen width.
  • CBCGPStaticLayout: implemented ability to disable layout with incorrect (non-existing) controls. If upon adding anchor the layout manager cannot find control with specified ID, the layout is disabled for this window. Call new method DisableOnAddAnchorError to enable this new feature.
  • Visual Manager and Themes:
  • CBCGPTagCloud: improved tag foreground color in some visual themes.
  • Toolbar and Ribbon button borders are DPI-aware now. For example, if you run your application on 200% DPI scaling monitor, you will see double borders around the checked buttons.
  • Grid and Report Controls:
  • Improved appearance of the disabled grid control: all texts inside the grid are drawn using special gray foreground color. You may enable this feature by calling a new method CBCGPGridCtrl::SetDisabledTextColor.
  • Implemented SVG icons support for the header and cell grid icons.
  • CBCGPTreeCtrlEx: implemented ability to tune GetNextItem method behavior (when control filter bar is displayed). Call new method SetFilterBarGetNextItemOption(TRUE) to skip hidden items.
  • CBCGPTreeCtrlEx: a new method GetColumnValue allows to retrieve the value from a tree item in the specific column.
  • CBCGPGridItem: added horizontal align support (see screenshot). Please call new method SetHorzAlign to specify the horizontal alignment and GetHorzAlign to obtain it. Please take a look at BCGPGridExample application (new "Formatted Grid" view) to see this new feature in action.
  • Improved Grid zooming in/zooming out behavior: you may specify ability to auto-resize grid columns by calling a new method CBCGPGridColumnsInfo::EnableScaledInZoomedGrid.
  • Added grid icons auto-scaling support: when grid is zoomed in or zoomed out, the images are scaled automatically according to the current zooming ratio (see screenshot).
  • A new helper method CBCGPGridCtrl::SelectArea provides an easy way to select a range of items.
  • Implemented ability to draw selected grid item(s) using grid item foreground/background colors (see screenshot). To enable this option, please call a new method CBCGPGridCtrl::SetDrawCellsWithCustomColorsOnSelection. Please take a look at BCGPGridExample application (new "Formatted Grid" view) to see this new feature in action.
  • Calendar and Planner:
  • CBCGPPlannerManagerCtrl: added SVG icons support (planner images and up/down custom icons).
  • Added ability to drop dragged appointment to the day located in non-displayed month(s): CBCGPPlannerManagerCtrl::SetCalendar and CBCGPCalendar::SetPlanner methods have a new, optional parameter bDropOnDaysOutsideMonths.
  • Improved appointment dragging behavior in the monthly view.
  • Property Grid Control:
  • CBCGPProp: a new method BOOL SelectOption(const CString& strOption) allows to select option by text.
  • A new class CBCGPColorListProp is a property with dropped-down colors list (see screenshot). The following color sets can be displayed: standard (Web colors), system, accent or custom. Please take a look at BCGPControls example to see this new property in action.
  • Controls:
  • CBCGPListCtrl: added owner-draw groups support (see screenshot). Override a new virtual method OnDrawGroup to implement a themed (e.g. visual manager-based) groups. Please take a look at BCGPControls example to see this feature in action.
  • CBCGPMenuButton: a new helper method SetupMenu simplifies a menu button initialization.
  • CBCGPShellList: added a new method RemoveItem.
  • CBCGPButton: a new public member m_bDisableRoundedCorners allows to disable rounded corners in all visual themes.
  • CBCGPBreadcrumb: added a new method ResetContent. Call this method to remove all breadcrumb items.
  • CBCGPInfoBoxView: a new member m_clrBackground specifies view background color.
  • Miscellaneous:
  • Added new build configuration option: BCGP_EXCLUDE_DIRECT2D. Uncomment line containing this definition in BCGCBProConfig.h file if you wish to completely exclude Direct2D and after that rebuild the required libraries and DLLs.
  • CBCGPToolBarImages::GrayImages: added SVG icons list support.
  • CBCGPSVGImage: added "paint-order" attribute support.
  • CBCGPGridVisualObject: if the parent visual container has auto-hide scrollbars, the grid control scrollbars will also be auto-hidden in the inactive state.
  • CBCGPOutlookBarPane: added Windows 11/Office 2021-style selected button style (see screenshot). Call new method SetButtonFullRowWidth to specify the button style or GetButtonFullRowWidth to obtain it. In addition, this style is applied to property sheet navigation buttons (Office 2013-2022 and Visual Studio 2012 - 2022 themes, see screenshot). Please take a look at BCGPGridExample or BCGPDigitalDashboard examples to see this new style.
  • CBCGPMultiViewFrameWnd: added windows navigator support - see screenshot. The user can see the full list of views and docking panes and easily activate desired window/pane with a help of Ctrl+tab keys combination. (In the previous product versions, this navigator was available in CBCGPMDIFrameWnd class only). You have to call EnableWindowsNavigator method to enable this feature. Please take a look at GraphicsManagerDemo sample to see this feature in action.
  • Examples and Samples:
  • BCGPCalendarDemo: demonstrates how to use planner icons in all visual themes.
  • BCGPControls: added list control custom themed groups demonstration.
  • BCGPEdgeDemo and BCGPInternetExplorerDemo: demonstrates how to use a new WebView2 control (CBCGPWebView2Ctrl).
  • GraphicsManagerDemo: added demonstration how to use windows navigator in multi-view SDI application.
  • MessageBoxDemo: added caption width limit demonstration.
  • ResizableForm: toolbar customization dialog is resizable now.
  • RibbonGadgets: added demonstration how to create an auto-repeat ribbon button and slider control in progress mode.
  • ToolbarCustomizeDemo: a new sample that demonstrates toolbar/menu customization features (see screenshot).
  • BCGPGridExample: added new view Formatted Grid (see screenshot). This view demonstrates how to format specific Grid control cells. You may change foreground and background colors, text style and horizontal/vertical alignment.
  • Fixes:
  • CBCGPGroup: addressed issue with incorrect control rendering when "Draw by parent" style is specified and group has check box or radio button.
  • CBCGPMenuButton: addressed issue with missing menu keyboard shortcut underlines when the menu was activated by keyboard.
  • CBCGPFileDialogEx: addressed issue with incorrect tree/list controls fonts in the high DPI mode.
  • CBCGPColorComboBox: addressed issue with incorrectly cached Windows accent color. Now, the default color is always synchronized with the Windows color.
  • CBCGPGridCtrl: addressed issue with clicking on the vertical line when grid columns are not resizable. The nearest grid cell will be selected now in this case.
  • CBCGPTabWnd: addressed issue with unnecessary setting focus to the tab window when one of this window child windows already has focus.
  • CBCGPTabWnd: added tabs area repainting at the end of tab changing animation. Sometimes, when the application is busy, the tabs were not properly repainted during the animation.
  • CBCGPOutlookWnd: the vertical font is re-created now when DPI scale is changed or window is moved to monitor with other DPI.
  • CBCGPGraphicsManagerGDI: addressed issue with incorrect caching of geometry groups in some cases.
  • CBCGPGlobalUtils: addressed some issues with incorrect calculation of the system border size in GetSystemBorders method.
  • CBCGPRibbonPanel: addressed some issues with incorrect controls tab order after controls layout optimization.
  • CBCGPGridCtrl: addressed issue in filter-bar mode in GetSelectedItemCount method.
  • CBCGPGridCtrl: RedrawMergedItems is working correctly now when item has a bold font.
  • CBCGPToolbarDateTimeCtrl: improved control appearance on toolbar customization dialog.
  • CBCGPPropertySheet: fixed Aero Wizard header bottom line appearance in some visual themes.
  • CBCGPGridCtrl: addressed issue with incorrect grid column width after moving zoomed grid to monitor with a different DPI value.

New in BCGControlBar Professional Edition 33.3 (Nov 8, 2022)

  • Ribbon Bar:
  • Improved Ribbon customization:
  • Added ability to move custom control between custom groups and move custom groups between custom tabs.
  • Revised mechanism of saving/restoring custom groups.
  • CBCGPRibbonButton::SetMenu has a new, optional parameter "bKeepMenuHandle" (FALSE by default). When this parameter is TRUE, the menu is not converted to sub-items list.
  • Extended Ribbon Quick Access Toolbar (QAT) appearance customization (see screenshot). The following new features were added in this version:
  • The QAT can be hidden now: call new method CBCGPRibbonBar::SetQuickAccessToolbarVisible to toggle QAT visibility.
  • You can display the QAT Ribbon controls with text labels (see screenshot): call new method CBCGPRibbonBar::SetQuickAccessToolbarLabels to show/hide these labels.
  • You can specify which QAT customization features are available for the user (in the QAT editing menu): call new method CBCGPRibbonBar::SetQuickAccessToolbarEditFlags with combination of the following flags: BCGPRIBBONBAR_QAT_HIDE_ALLOWED, BCGPRIBBONBAR_QAT_SHOW_LABELS_ALLOWED and BCGPRIBBONBAR_QAT_CHANGE_LOCATION_ALLOWED.
  • The recent QAT state is automatically saved in the application settings and will be restored on the next application run.
  • Toolbars and Menus:
  • CBCGPPopupMenu::HideRarelyUsedCommands method is a virtual now.
  • CBCGPKeyboardPage (keyboard shortcuts customization page): added tooltips for the wide (partially visible) command names (see screenshot).
  • Gauge Controls:
  • CBCGPAnalogClock has the following additions and improvements:
  • EnableSecondHand method has a new, optional parameter bSmoothMovement. When this parameter is TRUE and seconds needle is enabled, the needle is smoothly moved between the seconds tick marks. Please take a look at BCGPGaugesDemo example (Analog Clock view) to see this new feature in action.
  • A new virtual method OnGetClockTime allows to specify a custom time.
  • CBCGPGaugeImpl: implemented rounded corners support for several gauges. SetCornerRadius and GetCornerRadius methods were added to this class. You can specify the rounded shapes in the following gauge types:
  • CBCGPColorIndicatorImpl (see screenshot)
  • CBCGPLinearGaugeImpl (see screenshot)
  • CBCGPNumericIndicatorImpl (see screenshot)
  • CBCGPNumericIndicatorImpl: added digit type:
  • BCGP_NUMERIC_DIGIT_SEGMENTS_7 (see screenshot)
  • BCGP_NUMERIC_DIGIT_SEGMENTS_7_DOTS (see screenshot)
  • BCGP_NUMERIC_DIGIT_SEGMENTS_16 (see screenshot)
  • Call new method SetDigitType to specify this type and GetDigitType to obtain it.
  • New gauges CBCGPNumericDateTimeIndicatorImpl and CBCGPDigitalClock implement a digital date/time indicator and digital clock (see screenshot). Please take a look at BCGPGaugesDemo and MMStyleExample examples to see these new gauges.
  • CBCGPNumericIndicatorImpl: added new indicator state BCGP_NUMERIC_INDICATOR_STATE_NOTREADY (see screenshot).
  • Visual Manager and Themes:
  • CBCGPMenuButton: improved separator appearance (split mode) in the various visual themes. In the previous versions the separator was always drawn as etched line.
  • Improved appearance of expand/collapse button in various visual themes (OnDrawExpandingBox method).
  • The colors returned by CBCGPVisualManager::GetNumericIndicatorColors method are more contrast now.
  • Improved appearance of the Ribbon check box and radio button on the customization list item.
  • CBCGPSliderCtrl: a channel has rounded corners in Office 2022 visual theme (see screenshot).
  • Improved system caption buttons appearance in visual themes with owner-draw captions such as Visual Studio 2019 (see screenshot) or Office 2022 (see screenshot). The icons are the same as in Windows 10/11, Visual Studio and MS Office applications, and buttons are wider.
  • Controls:
  • CBCGPInfoBoxRenderer: implemented info box printing (see screenshot).
  • CBCGPButton: added a new global flag m_bDontSetCapture (FALSE by default). When this flag is TRUE, SetCapture/ReleaseCapture are never called and mouse tracking will be used instead. This flag is useful for applications sensitive for the mouse/keyboard capturing changes.
  • CBCGPListBox: added new attribute AutoToolTips (SetAutoToolTips and GetAutoToolTips access methods). When this attribute is TRUE, tooltip will be automatically displayed near list box item with not fully-displayed (too wide) text.
  • MSAA and CodedUI Tests:
  • CBCGPURLLinkButton has a correct role (system link) now.
  • Improved accessibility support for some Ribbon controls such as Ribbon Gallery, Ribbon Undo button, Ribbon Quick Steps and others.
  • CBCGPGroup with check box or radio button has correct default action and description.
  • CBCGPCalculator: control name is "Calculator" now and control value is the same as displayed formatted text.
  • CBCGPInfoBoxCtrl returns the info box text as accessibility name.
  • Improved accessibility support for Calendar (Planner) control.
  • Edit control:
  • Implemented ability to toggle comments around selected text using single typed character (e.g. '/' in C++ language). The easiest way to enable this feature is adding a new tag CommentString to your XML settings file. Alternatively, you may call a new method CBCGPEditCtrl::EnableCommentingSelectedText. In addition, the following new methods were added to CBCGPEditCtrl class:
  • IsCommentingSelectedTextEnabled
  • CommentSelectedText
  • CommentText
  • GetCommentChars
  • Please take a look at BCGPVisualStudioGUIDemo example to see this new feature in action.
  • Added a new method HasSelection: this method tells whether some text is selected.
  • Miscellaneous:
  • Stdafx.cpp/.h files were renamed to BCGPStdAfx.cpp/.h (to avoid possible incorrect precompiled header files references in user application).
  • CBCGPBaseVisualObject: a new virtual method OnSystemSettingChange is called when parent window is receiving WM_SETTINGCHANGE message.
  • CBCGPPropertyManager: method LoadValuesFromRegistry has a new, optional parameter 'bNotifyChanges' (FALSE by default). If this parameter is TRUE and property value loaded from the registry is not default, OnPropertyChanged is called for this property.
  • CBCGPLightBoxDialogOptions has a new member m_bDisableParentWindow (default value is FALSE). When this attribute is TRUE, the whole parent frame is disabled and grayed out, so user is not able to resize or move it (see screenshot). Please take a look at LightBoxDemo sample to see this new feature in action.
  • A new helper class CBCGPInfoBoxView simplifies creating CView-derived class with embedded info box. If you need to create a simple information view, please derive your class from CBCGPInfoBoxView and call SetInfoText in the class constructor. Many of our samples are using this class now.
  • Improved printing of the several controls:
  • Calendar (Planner): a print content is same as view content.
  • Grid and Edit controls: improved font and layout used for the printing.
  • CBCGPGridCtrl: the following new access methods were added (for obtaining/changing default exporting flags):
  • SetDefaultExportToHtmlFlags
  • GetDefaultExportToHtmlFlags
  • SetDefaultExportToCsvFlags
  • GetDefaultExportToCsvFlags
  • Examples and Samples:
  • BCGPControls: added auto-repeat push button demonstration to "Push Buttons" view.
  • BCGPGaugesDemo has the following additions and improvements:
  • "Analog Clock" view demonstrates a seconds' needle smooth movement.
  • Added a new view "Digital Clock" that demonstrates a new Digital Clock gauge.
  • Added "Rounded Corners" option to some views.
  • Digital Indicator view demonstrates new "Not Ready" state and Digit Types.
  • "Car Dashboard" view: a numeric indicator was replaced with a new digital clock gauge.
  • MMStyleExample: a numeric indicator (used for displaying a current position in the played song) was replaced with a new date/time digital indicator.
  • BCGPVisualStudioGUIDemo: added demonstration how to comment a selected text in our edit control.
  • BCGPGridExample: the user interface of this example was fully redesigned (see screenshot):
  • Toolbars/Menu UI was replaced with MS Excel-like Ribbon-based UI.
  • Current view-specific options are located now on the Ribbon contextual tabs and we added some new options illustrating grid control features.
  • BCGPMSOfficeDemo: added demonstration how to use new customization features of the Ribbon QAT.
  • LightBoxDemo: added "Close Light Box by Clicking Outside" and "Disabled Parent Window" options demonstration.
  • RibbonGadgets: all Ribbon bar existing and new options were moved from the menu to new property grid (see screenshot).
  • Fixes:
  • CBCGPGridCtrl: addressed issue with incorrect column width when column auto-size is specified and current grid zoom factor is not 100%.
  • CBCGPComboBox: addressed issue with drawing text when no font is specified.
  • CBCGPDateTimeCtrl: dropped-down date/time list is closed now when user presses Alt key.
  • CBCGPDrawManager: DrawRoundRect correctly draws rectangle when corner radius is too small and lpRectClip is specified.
  • Removed unnecessary calls to CFrameWnd::GetMessageString for internal commands (calling this method caused "Warning: no message line prompt" in the debug output window.
  • CBCGPListBox: addressed issue with incorrect value of the default tab stop.
  • CBCGPPopupMenu::DrawFade: addressed issue with incorrect shadow dimension.
  • CBCGPRibbonCheckBox: addressed issue with incorrect vertical alignment when control is located on the Ribbon tabs row.
  • CBCGPWinUITiles: addressed issue with mouse clicking on the same tile without cursor moving between clicks.
  • CBCGPFileDialogEx: addressed some localization issues.
  • CBCGPPropertyManager: addressed issue with incorrect processing 'collapsed' attribute for the values list property.
  • CBCGPLightBoxDialog: a shadow window has the same shape (rounded corners) as parent a frame.
  • CBCGPMessageLightBox: addressed issue with incorrect layout when the message box is displayed over a narrow parent frame.
  • Addressed some issues with displaying double or triple borders (e.g., when WS_EX_STATICEDGE and WS_EX_CLIENTEDGE extended styles were specified together) in controls with custom visual themes.
  • CBCGPDropDownList (used in the Ribbon combo box and auto-complete lists): addressed issue with unnecessary scrolling if selected item is fully visible.
  • CBCGPPopupWindow: addressed issue with incorrect dialog template size in case of some non-English dialog resources.
  • CBCGPWindowsNavigator: the left (Panes) column now automatically scrolls to ensure the selected pane is visible.
  • CBCGPWindowsNavigator: the window doesn't have unnecessary space on bottom when all items don't have descriptions/paths.
  • CBCGPRibbonButton: menu and command areas are cleaned-up now if after calling RemoveSubItem/ RemoveAllSubItems list of subitems is empty.
  • CBCGPFileDialogEx: addressed issue with incorrect initial folder when input file name does not contain path.
  • CBCGPEditCtrl: addressed issue with incorrect indentation caused by Undo operation.
  • CBCGPEditCtrl: addressed issue with incorrect error indication when a part of word is being selected.
  • CBCGPGridCtrl: fixed virtual row drawing artefact in some cases.
  • CBCGPToolBoxPage: addressed issue with displaying tooltip of item with double ampersand in the label.
  • CBCGPGridCtrl: addressed issue with clicking check box located on disabled grid row.

New in BCGControlBar Professional Edition 33.2 (Aug 29, 2022)

  • Office 2021/2022-style Visual Themes are available now (see screenshot and screenshot). A new class CBCGPVisualManager2022 implements the following visual styles: Colorful, Dark Gray, White and Black.
  • Please take a look at BCGPMSOfficeDemo, BCGPVisualStudioGUIDemo, BCGPControls, BCGPOrganizer, DrawCLI and WordPad examples to see this new visual theme.

New in BCGControlBar Professional Edition 33.0 (May 30, 2022)

  • Implemented support for per monitor DPI awareness (see screenshot). All library controls are automatically scaled when user moves the application frame, dialog or floating pane to monitor with other DPI or change the current display scale. To enable this feature, you've to specify Per-Monitor (V2) DPI Awareness (since you cannot do it in the Visual Studio project settings, please use an external manifest file - see our examples/samples or build a new application using BCGControlBar Pro Application Wizard). Although implementation of this feature required a lot of changes in the library core, we've preserved a full backward-compatibility and generally, you don't have to make any significant changes in your source code. Please take a look at the following new article to learn how to update your existing application - PerMonitorDPI.
  • Ribbon Bar:
  • CBCGPBaseRibbonElement: a new virtual method OnDPIChanged is called when DPI is changed or window was moved to another monitor with different DPI. Override this method if you need to recalculate your custom dimensions or reload DPI-specific resources.
  • Added simplified mode options: call new method CBCGPRibbonBar::SetSimplifiedModeOptions to specify these options and CBCGPRibbonBar::GetSimplifiedModeOptions to obtain them.
  • CBCGPRibbonBar::GetImagesLuminosity method is a virtual now and it has a new, optional parameter CBCGPRibbonCategory* pCategory - category where icons luminosity needs to be changed. Override this method if you need to change the icons luminosity for specific category.
  • Toolbars and Menus:
  • CBCGPOutlookBarPane: added new method SetFirstVisibleButton. Call this method to scroll the pane vertically to the specific button. A new method GetFirstVisibleButton returns an index of the first visible button.
  • CBCGPToolBar: GetMenuImageSize has a new, optional parameter CWnd* pParent.
  • CBCGPToolbarButton: a new virtual method OnDPIChanged is called when DPI is changed or parent toolbar was moved to another monitor with different DPI. Override this method if you need to recalculate your custom dimensions or reload DPI-specific resources.
  • CBCGPToolBar::ResetAllImages has a new, optional parameter bResetSize (TRUE by default). If this parameter is FALSE, CBCGPToolBar::m_sizeImage remains unchanged after calling this method.
  • Docking Panes:
  • CBCGPDockingControlBar: improved docking pane icons support. Instead of assigning icon to pane using SetIcon method, you can specify an icons list in your CMainFrame class constructor (call new method SetDockingBarsIconList) and assign icon to the pane with a help of new method CBCGPDockingControlBar::SetIconIndex. The icon(s) will be automatically rescaled when you move the pane to display with a different DPI.
  • CBCGPCaptionButton: added new optional parameter CWnd* pWndParent to the class constructors (required for DPI-aware application).
  • CBCGPSmartDockingParams has a new member m_bDPIAware. If this member is TRUE, m_sizeTotal, m_nPadding and m_nCentralGroupOffset will be automatically scaled.
  • Gauge Controls:
  • A new class CBCGPCircularProgressIndicatorRendererBase allows to implement a window-less circular progress indicator. Please take a look at RibbonGadgets sample to see how to add indicator to the Ribbon custom element.
  • CBCGPBaseVisualCtrl (base class of all gauge control classes): a new virtual method OnDPIChanged is called when DPI is changed or window was moved to another monitor with different DPI. Override this method if you need to recalculate your custom dimensions or reload DPI-specific resources.
  • CBCGPBaseVisualObject (base class of all gauge implementation and container classes): a new virtual method OnDPIChanged is called when DPI is changed or parent window was moved to another monitor with different DPI. Override this method if you need to recalculate your custom dimensions or reload DPI-specific resources.
  • CBCGPGaugeImpl: BCGP_SUB_GAUGE_POS enumerator has a new value - BCGP_SUB_GAUGE_CENTER (sub-gauge is located at the center of the parent gauge - see screenshot).
  • Visual Manager and Themes:
  • CBCGPWinXPThemeManager: added list of DPI-specific theme managers (CBCGPWinThemes class). When some GUI element is rendered using Windows theme API, DPI-specific theme will be used.
  • CBCGPVisualManager: added a new virtual method OnDPIChanged. This method is called by the framework when the main application window is moved to display with other scale (DPI).
  • Info box: improved default colors in some visual themes (see screenshot).
  • Grid and Report Controls:
  • CBCGPGridRow and CBCGPGridItem: a new virtual method OnDPIChanged is called when DPI is changed or window was moved to another monitor with different DPI. Override this method if you need to recalculate your custom dimensions or reload DPI-specific resources.
  • New flag ExportOptions::EF_IncludeRowHeader allows to export content of a leftmost column (row header), this flag is used with methods CBCGPGridCtrl::ExportToHTML, CBCGPGridCtrl::ExportRangeToText, CBCGPGridCtrl::ExportRangeToHTML and CBCGPGridCtrl::ExportToCSV.
  • Improved MSAA support in CBCGPGridRow.
  • CBCGPGridCtrl: a new method IsGridItemBordersEnabled tells who is responsible for the grid item border drawing (grid or grid item).
  • Desktop Alert Window:
  • Implemented Desktop Alert title (see screenshot):
  • Added new member m_strTitle to CBCGPPopupWndParams structure.
  • CBCGPPopupWindowColors has a new member clrTitle - specifying title foreground color.
  • Please take a look at PopupDemo sample to see this new feature in action.
  • Implemented ability to close popup window when owner window is changed (e.g., moved or resized). Call new method CBCGPPopupWindow::SetCloseOnOwnerChange to enable this feature.
  • Added tooltip-style visual theme (BCGPPopupWindowTheme:: BCGPPopupWindowTheme_VisualManagerToolTip).
  • Controls:
  • CBCGPInfoBoxRenderer has the following additions and improvements:
  • Class constructor has a new, optional parameter CWnd* - a pointer to window where info-box is displayed. This is important to specify this window to correct drawing in multi-DPI environment.
  • Added new member m_bAlwaysUnderlineLink: set it to FALSE if you wish to underline the link only if link is hovered.
  • A new member m_bVisualThemeColors specifies whether control is rendered using a currently selected visual theme.
  • CBCGPEdit: added support for themed (visual manager-based) balloon tooltips (appeared upon receiving EM_SHOWBALLOONTIP messages, see screenshot). If you wish to turn-off this feature and display default tooltips, please set a new global flag globalData.m_bThemedBalloonTips to FALSE.
  • CBCGPStatic: added a new attribute m_bDPIAwareIcon. If this member is TRUE, the icon will be correctly drawn after changing DPI value (you have to call SizeToContent method after DPI changing).
  • Miscellaneous:
  • Application Wizard for Visual Studio 2017 - 2022:
  • Added option Per Monitor High DPI Awareness V2 (see screenshot).
  • When option above is checked (by default), the project is Dpi-aware and all icons/images are automatically reloaded when the main application window is moved to display with other Dpi.
  • Docking pane icons were replaced with a shared image list and each pane has a corresponding icon index now.
  • Added new classes CBCGPWindowDC (derived from CWindowDC), CBCGPPaintDC (derived from CPaintDC) and CBCGPClientDC (derived from CClientDC). Use these classes specifying a current window used for DPI-specific measurements.
  • BCGPGLOBAL_DATA contains a list of DPI-specific data such as fonts, cursors, icons and cached dimensions. All DPI-specific members are located in new structure BCGP_GLOBAL_DATA_DPI. If you need to access it, please call globalData.Get(CWnd*) or globalData.Get(nDPI).
  • Added new BCGPChartLayout::LegendPosition values:
  • LP_TOPLEFT
  • LP_BOTTOMRIGHT
  • LP_BOTTOMLEFT
  • LP_TOPRIGHT_HORZ
  • LP_TOPLEFT_HORZ
  • LP_BOTTOMRIGHT_HORZ
  • LP_BOTTOMLEFT_HORZ
  • Please take a look at BCGPChartExample application to see this new feature in action.
  • added DWM PM support for CBCGPGlobalUtils methods:
  • GetSystemBorders has a new optional parameter nDPI.
  • A new method GetDpiForWindow returns specific window DPI.
  • All ScaleByDPI methods have a new optional parameter const CWnd*.
  • Added a new method GetSystemMetricsForDPI.
  • In addition, the following new methods return DPI-specific global members: GetSizeAllCursor, GetMoveTabCursor, GetNoMoveTabCursor, GetSelectRowCursor, GetMagnifyCursor, GetFontRegular, GetFontTooltip, GetFontBold, GetFontUnderline, GetFontDefaultGUI, GetFontDefaultGUIUnderline, GetFontVert, GetFontVertCaption, GetFontSmall, GetFontMarlett, GetFontCaption, GetFontHeader, GetFontDefaultGUIBold, GetFontGroup, GetFontGroupBold, GetFontWingdings, GetTextHeight, GetTextWidth, GetCaptionTextWidth, GetCaptionTextHeight, GetTextMargins.
  • A new class CBCGPWindowDpiState allows to specify window that will be used for DPI-specific measurements.
  • CBCGPTextFormat::Scale has a new, optional parameter bFromOriginal. If this parameter is FALSE, the scaling will be based on the current text size.
  • CBCGPMessageBox: added new global flag m_bDrawSpecialAreaOnNC (default is TRUE). Set this flag to FALSE if you don't wish to fill message box buttons area with alternate background color.
  • CBCGPProp: a new virtual method OnDPIChanged is called when DPI is changed or parent property grid window was moved to another monitor with different DPI. Override this method if you need to recalculate your custom dimensions or reload DPI-specific resources.
  • CBCGPToolBarImages: added DPI PM support. Call new method SetDPIAwarePM (when image list is empty!) and, if current DPI is not default and Per-Monitor (V2) DPI Awareness is enabled, a temporary scaled image list will be used for the icons rendering. This behavior is automatically applied to all toolbar, ribbon bar and menu images.
  • CBCGPSVG: added support for "baseline-shift" style attribute and relative (with trailing '%' sign) "font-size" attribute.
  • CBCGPEditCtrl: a new method SetTextLeftMargin allows to specify a distance between text and left-side bar. By default, this value is 0.
  • Examples and Samples:
  • added Per-Monitor (V2) DPI Awareness support for all examples and samples.
  • BCGPChartExample: added new legend positions demonstration (Chart Legend view).
  • BCGPGridExample: added demonstration how to create DPI-aware custom cells.
  • AnimationManagerDemo: animation canvas window is DPI-aware now.
  • RibbonGadgets: added demonstration how to add a circular progress to the ribbon elements.
  • BCGPChartExample: Chart Data Binding view is using ADO instead of ODBC now.
  • BCGPControls: added new Info Box features demonstration.
  • BCGPGaugesDemo: added demonstration how to add sub-gauge to the center of circular gauge.
  • PopupDemo: added desktop alert title demonstration.
  • SmartDockingDemo: demonstrates how to create DPI-aware custom docking markers.
  • RibbonSimplifiedMode: demonstrates how to use a panel launch button in the simplified mode.
  • Fixes:
  • CBCGPButton: addressed issue with incorrect capture releasing when another window was captured inside button click message handler.
  • CBCGPChartView: addressed some issues with a view scrolling.
  • CBCGPComboBox: addressed issue with incorrect control subclassing when BCGPModifyStyle method is called.
  • CBCGPEdit: addressed issue with incorrect drawing of the border when control has spin buttons.
  • Toolbar customize button: improved appearance when DPI is 175% or more.
  • Fixed bug with unresolved network path in CBCGPShellBreadcrumb::SelectPath method.
  • CBCGPBrowseForFolderDlg: addressed issue with incorrect look of Explorer-style tree buttons in some visual themes.
  • CBCGPSwitchImpl: addressed some issues with setting value when control animation is active.
  • CBCGPToolTipCtrl: addressed issue with Z-order when tooltip is displayed on inactive frame.
  • CBCGPPopupMenu: addressed issue with unexpected closing popup menu when user moves mouse cursor near disabled menu item (Windows 11 + rounded corners only).
  • CBCGPGridCtrl: addressed issue with incorrect keyboard processing in the context menu opened when the filter bar is active.
  • CBCGPGanttChart: addressed issue with incorrect hierarchy after calling InsertItem method (in some cases).
  • Notification badges: addressed issue with incorrect (white) foreground color when a badge has a light background color.
  • Visual themes: addressed issue with incorrect check box / radio button default size in some visual managers (DPI 150% or higher).
  • CBCGPPropList: addressed issue with incorrect fonts in the property combo box and search box after changing visual theme.
  • CBCGPSVG: addressed some issues with drawing nested text blocks.
  • CBCGPRibbonBar: addressed issue with incorrect in some cases minimize/restore Ribbon button tooltip.
  • CBCGPGridFilterEdit: addressed issue with pressing Esc in some cases.

New in BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 31.3 (Jun 15, 2021)

  • Fixes:
  • CBCGPGaugeImpl: addressed some issues with moving pointer (needle) in the interactive mode when gauge has multiple number of pointers.
  • CBCGPComboBox: addressed a vertical scroll bar drawing issue when control has CBS_SIMPLE style.
  • CBCGPDateTimeCtrl: a drop-down calendar is not opened again when user clicks drop-down button and calendar is already opened.
  • CBCGPKeyHelper: addressed issue with conversion key to uppercase in some locales.
  • CBCGPGlobalUtils: ProcessCtrlEditAccelerators correctly processes now keyboard accelerators with the same character as in standard keyboard shortcut (such as Ctrl+A).
  • CBCGPTabWnd: addressed issue with incorrect width of the underline bar when tab labels in the uppercase.
  • CBCGPVisualContainer: addressed issue with incorrect container's objects position during moving when container has scrollbars.
  • CBCGPRibbonCategory: addressed issue with unnecessary scroll buttons appearing when the Ribbon has enough space to display all panels (groups) without scrolling.
  • CBCGPVisualManager2016 (colorful theme): addressed issue with incorrect foreground color of disabled backstage menu item if developer specified a very light accent color.
  • CBCGPPropList: addressed issue with incorrect commands area height after adding/removing the commands.
  • CBCGPDiagramTextDataObject: addressed issue with editing empty label.
  • CBCGPGanttChart: addressed some issues with drawing Gantt chart header.

New in BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 31.0 (Nov 16, 2020)

  • New class CBCGPMultiViewFrameWnd (derived from CBCGPFrameWnd) implements a multi-view single-document interface (SDI) (see screenshot). You have to derive your frame class from CBCGPMultiViewFrameWnd and override GetViewsCollection method (returns CBCGPMultiViewsCollection-derived object which hosts views collection). The following examples and samples are using now this new frame type:
  • BCGPChartExample
  • BCGPControls
  • BCGPDiagramDemo
  • BCGPGaugesDemo
  • GraphicsManagerDemo
  • OutlookMultiViews
  • In addition, Application Wizard (for Visual Studio 2017 - 2019) has a new interface option: Multi-view SDI (see screenshot).
  • Ribbon Bar:
  • Improved Ribbon controls appearance and paddings in high DPI mode.
  • CBCGPRibbonBackstageViewItemPropertySheet: controls layout can be loaded now from MFC dialog resources. A class constructor has a new optional parameter 'bLoadMFCResourceLayout'.
  • CBCGPRibbonBackstageViewItemPropertySheet: a new optional parameter of class constructor 'nListWidth' allows to specify a left-aligned page list width. By default, the width is calculated automatically by page name widths.
  • CBCGPRibbonBar::ReplaceRibbonElementByID has a new optional parameter 'bIncludeTabElements'. If this parameter is TRUE, controls located right of tabs will be included in the search scope.
  • Toolbars and Menus:
  • New class CBCGPToolbarLabel implements a static label located on the toolbar (see screenshot).
  • CBCGPPopupMenu: new static method SetTopmost allows to create an active popup menu with WS_EX_TOPMOST style.
  • Dialogs and Forms:
  • Implemented loading layout from MFC dialog resources: a new optional parameter bLoadMFCResourceLayout was added to CBCGPDialog::EnableLayout, CBCGPDialogBar::EnableLayout, CBCGPFormView::EnableLayout, CBCGPPropertyPage::EnableLayout and CBCGPPropertySheet::EnableLayout. Please take a look at ResizableForm sample to see this feature in action.
  • Added optimized dialog/forms controls background erasing: if dialog/form has a default (not textured) background, you may call SetControlsDefaultDlgBackground method (added to CBCGPDialog, CBCGPFormView, CBCGPPropertyPage and CBCGPPropertySheet classes) and controls redrawing will be much faster. Please take a look at BCGPChartExample, BCGPControls and BCGPGaugesDemo to see this feature in action.
  • Gauge Controls:
  • CBCGPCircularProgressIndicatorImpl: added ability to specify the progress angles. New members m_dblStartAngle and m_dblAngleRange were added to CBCGPCircularProgressIndicatorOptions structure.
  • CBCGPTagCloud: implemented tags vertical scrolling (see screenshot).
  • CBCGPNumericIndicatorImpl: implemented visual manager support (see screenshot). CBCGPNumericIndicatorColors structure constructor has a new optional parameter bIsVisualManagerTheme. In addition, CBCGPNumericIndicatorImpl has a new method SetVisualManagerTheme: call it to enable/disable visual manager theme for this gauge. A new method CBCGPVisualManager::GetNumericIndicatorColors allows to customize numeric indicator appearance in CBCGPVisualManager-derived classes. Please take a look at BCGPGaugesDemo example to see this feature in action.
  • Grid and Report Controls:
  • Added grid item(s) pasting from external data sources (e.g., text copied from Microsoft Excel can be automatically pasted in our Grid) (see screenshot). If you need to implement data pasting from your custom clipboard format, please specify allowed clipboard format(s) and column delimiter (Tab character by default) by calling new method CBCGPGridCtrl::SetExternalClipboardFormats, override new virtual method CBCGPGridCtrl::GetExternalClipboardFormat and override SerializeFrom method in your CBCGPGridSerializeManager-derived class (override CBCGPGridCtrl::CreateSerializeManager to replace the default serialize manager).
  • Improved Grid items search customization: the following new members were added to BCGP_GRID_FINDREPLACE_PARAM structure:
  • bStartFromCurrent - specifies whether a current item should be included in the search results.
  • nSearchColumn - specifies a zero-based Grid column index where search should be performed. If this member is (-1) (default value), all Grid columns will be used.
  • Override a new virtual method CBCGPGridItem::IsOptionPrefix if you wish to customize drop-down item selection by keyboard.
  • Controls
  • CBCGPDateTimeCtrl: virtual method OnDateChanged is always called now when a check box is toggled.
  • CBCGPEdit::EnableFileBrowseButton method has a new, optional parameter 'bOpenFileDialog'. When this parameter is FALSE, "Save File" dialog will be displayed when user clicks the Browse button.
  • CBCGPSliderCtrl: method 'GetSelectionRect' is a virtual now.
  • CBCGPShellList: column names are loaded from the localized resources now.
  • CBCGPPropList: added groups with optional check box (see screenshot). A group constructor has a new optional parameter 'bHasCheckBox'. Please take a look at BCGPControls example to see this feature in action.
  • CBCGPTreeCtrlEx::InsertItem supports TVI_SORT flag now.
  • CBCGPTreeCtrlEx: added quick item search by keyboard. You can type an item name prefix and first matched tree item will be selected.
  • Miscellaneous:
  • New method CBCGPEditCtrl::LoadXMLSettingsFromResource simplifies loading XML settings from application's resources.
  • A shared Search icon is used in all edit controls now (CBCGPEdit, filter bar in CBCGPGridCtrl and CBCGPRibbonEdit). In addition, in Office 2013-2019 and VS 2012-2019 visual themes, the search icon will be drawn using an accent color (see screenshot). A new method CBCGPGlobalUtils::SetCustomSearchIcon allows to specify a custom search icon.
  • CBCGPTasksPane: improved MSAA support.
  • Integration Wizard automatically creates VS user properties on machine with clean VS 2019 installation (without previous VS versions).
  • Examples and Samples:
  • BCGPChartExample: the main frame is derived from new class CBCGPMultiViewFrameWnd. Added controls background optimized erasing.
  • BCGPControls: added accent color chooser (Office 2013-2016 and Visual Studio 2013-2019 themes). The main frame is derived from new class CBCGPMultiViewFrameWnd. Added controls background optimized erasing. Add properties grid group with check box demonstration.
  • BCGPEdgeDemo: added persistent custom documents demonstration.
  • BCGPVisualStudioGUIDemo, ChatEditor, EditorMarkers and MDIEditorDemo: added CBCGPEditCtrl::LoadXMLSettingsFromResource demonstration.
  • GraphicsManagerDemo: the main frame is derived from new class CBCGPMultiViewFrameWnd.
  • OutlookMultiViews: the main frame is derived from new class CBCGPMultiViewFrameWnd.
  • ResizableForm: demonstrates how to load layout data from MFC dialog resources.
  • Fixes:
  • CBCGPBaseTabWnd: addressed issue with tabs auto-color when inserted tab order is a "right".
  • CBCGPFileDialogEx: addressed issue with incorrect selection of some folders located under the user profile.
  • CBCGPToolbarDateTimeCtrl: addressed issue with incorrect date/time picker status when control has a check box.
  • CBCGPRibbonCommandsListBox: addressed issue with adding Ribbon group (toolbar) controls to QAT source list box.
  • CBCGPRibbonCategory: addressed issue with incorrect calculation of total width when Ribbon has an application mode and some controls are not visible.
  • CBCGPPropList: addressed issue with deleting item when control has alphabetic sorting mode.
  • CBCGPChartAxisPolarX: addressed issue with text label clipping (when GDI+ graphics manager is being used).
  • CBCGPBaseVisualCtrl: addressed issue with incorrect tooltip initialization when control is created dynamically (by calling CWnd::Create method).
  • CBCGPEditCtrl: addressed issue with incorrect side-bar background color after changing visual themes.

New in BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 30.3 (Mar 11, 2020)

  • This release includes new themed file dialog, Visual theme easy chooser, improved shell controls and other new features and improvements.

New in BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 28.0 (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 BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 26.0 (Sep 29, 2017)

  • This release includes new LightBox dialog, improved Property Grid, Tab state animation and other new and improved features

New in BCGControlBar Professional Edition 25.20 (Feb 1, 2017)

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

New in BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 25.0 (Aug 9, 2016)

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

New in BCGControlBar Professional Edition 24.4 (Jun 1, 2016)

  • This release includes MS Office 2016-like Ribbon "Tell Me"
  • 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 BCGControlBar Professional Edition 24.3 (Oct 19, 2015)

  • Improved MS Office 2016-style themes, enhanced Ribbon customization, Office-like control info tips and many other new and improved features.

New in BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 24.1 (Apr 23, 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 BCGControlBar Professional Edition 24.0 (Mar 9, 2015)

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

New in BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 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 and more.

New in BCGControlBar Professional Edition 22.0 (Nov 29, 2013)

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

New in BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 20.0 (Mar 30, 2013)

  • Added extended Touch/Gesture support
  • Improved visualization
  • New features in WinUI Tiles and improvements in Chart Control, Tab Control, Dialogs, Gauges and Visual Container
  • Bug fixes and other changes

New in BCGControlBar Professional Edition 19.0 (Oct 6, 2012)

  • This release is fully-compatible with Visual Studio 2012 and fully tested under Windows 8
  • Implemented Office 2013-style Visual Manager, Visual Manager 2012 was adapted to Visual Studio 2012 RTM look
  • Improved Ribbon Bar, Visual Designer, Grid and Chart Controls
  • Bug fixes and other improvements

New in BCGControlBar Professional Edition 18.0 (Jul 21, 2012)

  • Includes Windows 8-like Metro Tiles UI
  • Full Ribbon customization
  • Improved Visual Studio 2012-style Visual Manager
  • Chart advanced legend and textured brushes and more

New in BCGControlBar Professional Edition 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 BCGControlBar Professional Edition 16.1 (Nov 5, 2011)

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