Release Notes BCGControlBar Professional Edition Version: 31.0. Released: 11/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. m_dblStartAngle and m_dblAngleRange new members 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 in 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.