Release Notes BCGControlBar Professional Edition Version: 25.3. Released: 05/22/2017 Visual Studio 2017 support: The product Integration Wizard fully supports Visual Studio 2017: since you can install different VS editions on the same machine, the wizard allows to choose which VS edition should be integrated with our product. The source files are fully compliant with Visual 2017 C++ compiler. All our examples and samples were thoroughly tested with VS 2017. Evaluation version contains DLLs and libraries required for VS 2017. Enhanced Windows 10 support: VS 2012-2017 and Office 2013-2016 Visual Managers may use Windows accent color now (see screenshot). CBCGPVisualManagerVS2012::AccentColor enumerator has a new member VS2012_Default. The application appearance is automatically updated when user changes the accent color in Windows "Settings" dialog. Please take a look at BCGPMSOfficeDemo and BCGPVisualStudioGUIDemo examples to see this feature in action. The product is fully tested under Windows 10 Creator Update. Improved non-client area appearance when title bar is using Windows accent color (see screenshot) Ribbon Bar A frame windows classes (CBCGPFrameWnd and CBCGPMDIFrameWnd) have a new method GetRibbonBackstageView. Call it to obtain a pointer to the currently active Ribbon backstage view. The system menu style (default or themed) can be specified by calling new method 'SetDefaultSystemMenu'. Ribbon category scrolling can be enabled or disabled by calling new CBCGPRibbonCategory method 'EnableScroll'. Ribbon edit box can be created with “read-only” style: SetReadOnly and IsReadOnly methods were added to CBCGPRibbonEdit class. Added ability not to capture mouse events while Ribbon mini-toolbar (“floaty”) is displayed: SetMouseCapture and IsMouseCapture methods were added to CBCGPRibbonFloaty class. A new virtual method 'CanBeRemovedFromQAT' was added to CBCGPBaseRibbonElement class. Override this method and return FALSE if you wish to prevent removing control from the Ribbon QAT. CBCGPRibbonButtonsGroup: added new methods Remove and RemoveByID. Dialogs and Forms Flicker-less group boxes rendering. To optimize group boxes drawing and prevent flickering while dialog/form is being resized, we've moved group box rendering to the parent window. If for some reason you wish to disable this feature, simply call new method of CBCGPDialog, CBCGPDialogBar, CBCGPFormView and CBCGPPropertyPage classes SetGroupBoxesDrawByParent(FALSE). Automatically resizable check boxes, radio buttons and static labels. Sometimes (especially in high DPI modes), the text label is truncated and developer have to add some extra space to control. Calling new method of CBCGPDialog, CBCGPDialogBar, CBCGPFormView and CBCGPPropertyPage classes AutoResizeControls solves this problem. The keyboard shortcuts are not underlined on the dialog controls until user doesn't press Alt key. Docking Panes Outlook bar: implemented Office 2013/2016-like compact mode (see screenshot). New 'SetMode2013' and 'IsMode2013' methods were added to CBCGPOutlookBar class. Please take a look at BCGPOutlookDemo example to see this new feature in action. CBCGPToolBox and CBCGPToolBoxEx allow to add empty pages now. MDI Windows and Tabs CBCGPMDITabParams has a new member 'm_bCloseTabOnMiddleClick'. Set it to FALSE if you don’t wish to close MDI child window by clicking its tab by the middle mouse button. Chart Control BCGPChartCategory has 2 new categories: BCGPChartBarSmart and BCGPChartBar3DSmart. Use these categories for "comfortable" placing chart series (MS Excel-like). Gauge Controls Implemented circular and linear gauges' level bars (see screenshot). The bar can be created with one of the following styles: Rectangular Rectangular with rounded corners Thermometer (linear gauge only) The following new methods were added to CBCGPGaugeImpl class: AddLevelBar ModifyLevelBar GetLevelBarsCount GetLevelBar RemoveLevelBar RemoveAllLevelBars SetLevelBarValue Please take a look at BCGPGaugesDemo example to see this new feature in action. Visual container and Visual Designer A data animation type can be changed by calling new CBCGPBaseVisualObject method “SetDataAnimationType”. “GetDataAnimationType” returns an animation type. Visual container/control can be printed using some options specified by CBCGPVisualPrintOptions: m_bPrintScreenshot: print scaled screenshot (faster) m_bUseGDI: use GDI graphics manager New methods SetPrintOptions and GetPrintOptions were added to CBCGPBaseVisualCtrl class. Grid and Report Controls Improved header icons appearance in various visual themes (see screenshot). Color bar foreground color is correctly calculated now according to bar background. CBCGPGridSparklineItem::SparklineType has a new type: SparklineTypeBarSmart. Use this type for comfortable placing chart series (MS Excel-like). Implemented cell custom tooltips. EnableCustomToolTips and IsCustomToolTipEnabled methods were added. You've to override new virtual method GetItemCustomTooltip to display the custom tooltips. Property Grid Control Item buttons have a visual style now (see screenshot). If you wish to display them with a default Windows theme (as it was in the previous product versions), simply call new property grid method SetButtonsDefaultTheme. Implemented Boolean property style. You can choose between “label” (true or false) or “check box” styles (see screenshot). Call new property grid method SetBooleanPropertiesStyle to specify this style or GetBooleanPropertiesStyle to obtain it. BCGPControlsDemo example demonstrates this new feature in action. Desktop Alert Window CBCGPPopupWindow has a new virtual method 'OnClickCloseButton'. Override this method in a derived class to be notified about clicks on close buttons located at popup window. Controls CBCGPColorComboBox: implemented ability to specify a default color – SetDefaultColor and GetDefaultColor methods were added. CBCGPColorComboBox: added GetSelectedColor method. CBCGPComboBox: implemented item groups support (see screenshot). New methods SetItemGroupStart and IsItemGroupStart were added. See ComboBoxDemo sample application. CBCGPDurationCtrl: added new attribute 'CyclicScroll': when this attribute is TRUE, scrolling of the current control part doesn't affect the next control part. SetCyclicScroll/GetCyclicScroll methods were added. CBCGPListBox: a color bar width can be specified by calling new method 'SetColorBarWidth'. GetColorBarWidth returns a current color bar width. CBCGPListBox: implemented items indentation. SetItemIndent and GetItemIndent methods were added to this class. CBCGPListBox: icons associated with disabled list box icons are drawing grayed now. CBCGPCheckListBox: added radio buttons support (see screenshot). SetItemRadioStyle and IsItemRadioStyle methods were added to this class. Please take a look at ListBoxDemo sample application to see this feature in action. CBCGPSplitterWnd: a border size can be specified by calling new class method 'SetBorderSize'. New CBCGPInfoBoxCtrl control implements advanced text box with the following features (see screenshot): Custom background, text and frame colors Caption support Custom paddings Built-in or custom icons Auto-resize Shadow around the frame Color bar Link Copy content to clipboard You can use this control instead of multi-line static text. New sample InfoBoxDemo demonstrates this control in action. In addition, window-less class CBCGPInfoBoxRenderer can be used to draw a text box – we’re using it now in many samples. MSAA and CodedUI Tests CBCGPAccessibilityData has a new member 'DWORD_PTR m_dwUserData' Improved accessibility support in CBCGPListBox and CBCGPCheckListBox classes. Edit control CBCGPEditCtrl: added a new method ScrollToCaret. Call this method to scroll to the currently focused editor location. Added a new CBCGPEditCtrl::m_bIntelliSenseCloseOnShift data member. Setting FALSE allows to use '_' symbols in IntelliSense window. Miscellaneous Gestures: improved touch screen gesture scrolling in CBCGPEditCtrl, CBCGPGridCtrl, CBCGPScrollBar and CBCGPVisualScrollBar classes. Added new member to BCGPGLOBAL_DATA: bIsWindows10. This variable is TRUE if application is running under Windows 10 or future versions. CBCGPSplitterWnd: added ability to specify a border size. SetBorderSize and GetBorderSize methods were added. CBCGPWinUITilesCtrl: developer can specify tiles runtime class by calling new method SetWinUITilesRTI. CBCGPDrawManager: added new methods GetColorBrightness and GetContrastColor. CBCGPEditListBox: added RemoveAllItems new method. CBCGPPrintPreviewCtrl: implemented CTRL + mouse wheel zooming. CBCGPShellBreadcrumb: added new virtual method OnAfterEnumFolderItems. Override this method to add custom items to the control. CBCGPToolBarImages: improved shadow appearance (used by Office XP theme) in 32 bpp mode. Examples and Samples BCGPChartExample: added "2D Side by Side Stacked Bar" and "3D Side by Side Stacked Bar" views. BCGPGaugesDemo: demonstrates how to use gauge level bars. BCGPGridExample: “Cell Types” view demonstrates how to use custom tooltips. BCGPMSOfficeDemo: demonstrates usage of Windows 10 Accent color (Office 2013/2016 themes). BCGPOutlookDemo: demonstrates Outlook 2013/2016 mode. InfoBoxDemo: this new sample demonstrates how to use CBCGPInfoBoxCtrl. ListBoxDemo: illustrates check list box radio items. MDITabsDemo: illustrates enabling/disabling closing tab on middle-button click. SplashScreenDemo: this new sample demonstrates how to create an application splash screen. Fixes: Include of multimon.h file is no longer used when product is compiled in the latest Visual Studio versions. Chart control: fixed bug with drawing animated objects when image cashing is on. Controls: standard Windows borders are rendered now when control is not themed. Dialogs: fixed bug with restoring window placement in the multi-monitor environment. CBCGPEdit: the background is correct now when control has ES_READONLY style. Ribbon mini-toolbar (floaty) can be displayed now when Ctrl or Shift keys are pressed. CBCGPMessageBox: fixed controls layout problem when single-line message width is less than header width. Ribbon backstage view: fixed issue with delayed page caption drawing when page transition effect is enabled. CBCGPRibbonQuickStepsButton: fixed size of the gap between the gallery rows. CBCGPTasksPane: fixed bug with a scroll total size when vertical scroll bar is enabled and tasks/labels are word-wrapped. Chart control: fixed some problems with drawing logscale axis. CBCGPEditCtrl: GetCurLine is working correctly now in case of the last document line.