Release Notes BCGControlBar Professional Edition Version: 35.1. Released: 08/28/2024 Ribbon Bar CBCGPRibbonCustomizationOptions: A new member m_bAddSubItemsToTreePanel specifies whether Ribbon control sub-items should be added to the panel node of the customization tree (TRUE by default). CBCGPRibbonBar::ShowBackstageView has a new, optional parameter, nSubPage. This parameter specifies a subpage to activate (CBCGPRibbonBackstageViewItemPropertySheet only). CBCGPRibbonColorButton: Improved behavior of the selected color; when SetSelectedColor was called with parameter CLR_NONE, no color is selected now on the dropped-down color palette. CBCGPRibbonBar: A new virtual method GetExportedFileDefaultName allows you to specify the customization data file default name. By default, this name is the same as the application name. Toolbars and Menus Improved toolbar editing: now, you can specify the common attributes, such as image lists or toolbar names, in the Toolbar Editor, and these attributes will be automatically loaded by the framework (see screenshot). Added support for the menu item data in the menu bar import and export methods (CBCGPToolbarMenuButton::CreateFromMenu and CBCGPToolbarMenuButton::CreateMenu). Dialogs and Forms CBCGPMessageBox: A new static member m_nTextCalculationStep specifies the text layout calculation tolerance (in pixels, 10 by default). Specify a larger value if you have message boxes with long texts to optimize the dialog initialization time. Improved appearance of dialog controls when the user specified the custom Windows text size. All controls have the same font size as the parent dialog font. MDI Windows and Tabs CBCGPMDITabParams: A new member m_bBalancedGroupLayout specifies whether the MDI tabbed groups have the same size after creating a new tabbed group. Please take a look at the MDITabsDemo sample to see this new feature in action. CBCGPAppOptions: A new member m_bAutoChangeMDITabsStyle specifies whether MDI tabs style should be changed upon the visual theme changing (e.g., in Office 2007-2010 themes, MDI tabs are colored and have OneNote style). By default, this member is TRUE. Grid and Report Controls Significantly improved performance of inserting a large number of items when the grid (or extended tree control) has a hierarchical structure. For example, adding 1 000 items each with 1 000 subitems takes less than 2 seconds now (in the previous versions, this operation took tens of seconds). Now, you can create the grid with a huge number of items and utilize advanced features such as filters and groups. The following methods of the CBCGPGridCtrl class have a new, optional parameter bUpdateSelection (FALSE by default): InsertGroupColumn, RemoveGroupColumn, and RemoveGroupColumnByVal. When this parameter is TRUE, the recent grid selection will be restored after changing the grid structure. A new virtual method CBCGPGridCtrl::OnQueryClearSkipStaticItem is called by the framework for each static (non-editable) grid item when the grid performs the Clear operation for multiple items. By default, the clearing operation doesn't affect the static items, but you can override this method to change this behavior. Controls CBCGPTreeCtrlEx: Improved keyboard navigation when the tree control has one column only; now, the navigation is very similar to the Windows tree view keyboard navigation. CBCGPTreeCtrlEx: Added LPSTR_TEXTCALLBACK and I_IMAGECALLBACK values support for the tree item dynamic text label and icons. CBCGPMultiLinkCtrl: Implemented CLinkCtrl-like methods such as SetItem, SetItemID, SetItemUrl, SetItemState, GetItem, GetItemID, GetItemUrl, and GetItemState. Using these methods, you can specify or retrieve the specific link attributes. The new class members m_clrLinkVisited and m_clrLinkDisabled allow you to specify the custom colors of the visited and disabled links. Please take a look at the BCGPControls example ("Link buttons" view; see screenshot) to see these additions in action. Edit control The text finding has been improved: now, when the matched text is located inside the collapsed (hidden) text block, the block will be automatically expanded and the caret will be moved to the selected text (this behavior is similar to the Visual Studio code editor behavior). A new method, CBCGPEditCtrl::ExpandHiddenText, allows you to expand the hidden text block specified by the offsets range. CBCGPEditCtrl::EnableAutoOutlining has a new, optional parameter bUpdate (FALSE by default). Set this parameter to TRUE to immediately reparse content and update outlining in the editor. Miscellaneous CBCGPTabWnd: Added a new, registered message BCGM_ON_SWAP_TABS. The framework sends this message to the tab control owner window when the user changes tab order. Add this message handler and return non-zero if you wish to prevent specific tabs from being reordered. Improved gauge default font support: if a gauge control is created on a dialog, property page, or form view, the text format has the same size as the parent window font size. BCGPGLOBAL_DATA: A new global flag m_bUseAccessKeyAsAccessibilityKey specifies which type of accessibility key (keyboard accelerator or underlined character) will be returned by the get_accKeyboardShortcut method. By default, this flag is FALSE. Calendar and Planner: Improved visual appearance in the Office 2022 themes (see screenshot). BCGPChartFormatLabel::GetFontSize (static method): added a new, optional parameter pWndOwner. Specify this value in order to correctly calculate the font size in multi-DPI environments. Improved French and Spanish translations. Examples and Samples BCGPMSOfficeDemo: Demonstrates new CBCGPRibbonCustomizationOptions::m_bAddSubItemsToTreePanel flag. BCGPVisualStudioGUIDemo: Added demonstration of new features of the Toolbar Editor (loading names and custom C++ class name from the resources). MDITabsDemo: Added m_bBalancedGroupLayout MDI tab groups option demonstration. BCGPControls: Added demonstration of the new CBCGPMultiLinkCtrl features (disabled and visited links, custom link colors). Fixes CBCGPPropList: Addressed an issue with incorrect search box height in some system configurations. CBCGPRibbonBar: Addressed an issue with an incorrect edit control font size when the Windows text size was changed. CBCGPURLLinkButton: Fixed the incorrect value of the internal padding when control is displayed in a high-DPI environment. CBCGPToolBarImages::AddIcon: Addressed an issue with adding an old-style (without alpha channel) icon (appeared in version 35.0). CBCGPPropertySheet: Addressed an issue with the missing call of CBCGPPropertyPage::OnKillActive method when the property sheet is resizable, and tab control is located on top. CBCGPToolbarMenuButton: Addressed an issue with incorrect menu arrow width in cases of large Windows text sizes. CBCGPTreeCtrlEx: Addressed an issue with incorrect redrawing after calling the Select method. MDI: Addressed some redrawing non-client areas issues of the MDI children windows (classic mode, no tabs or tabbed groups). CBCGPPlannerView: Addressed an issue with an incorrect redrawing of the header area in some specific cases. CBCGPGridCtrl: Addressed some issues with a custom sorting. CBCGPMultiLinkCtrl: Fixed bug with incorrect links tooltip rectangle after the DPI changing. CBCGPMultiLinkCtrl: The text of the link containing ampersand symbols is now correctly displayed in the corresponding tooltip. CBCGPGridCtrl: Addressed the issue with the incorrect font size of the column chooser after the grid control DPI changed. CBCGPEditCtrl: Addressed the issue with the incorrect result of the FindHyperlinkString method when a hyperlink is located inside quotes. CBCGPAnalogClock: Addressed the issue with the incorrect embedded date indicator size when the gauge has a custom font.