UI 界面开发 BCGControlBar Pro for MFC v33.4 更新发布
| BCGControlBar Pro for MFC v33.4 2023 年 2 月 14 日发布 |
添加了 Windows 11 Mica 材料支持。此功能适用于具有非主题(标准)非客户区(例如,Windows Native、Office 2010 或 Scenic 视觉主题)的框架。您无需对源代码进行任何更改 - 外观将自动应用于以下 UI 区域: 此外,BCGCBProDwmExtendFrameIntoClientArea 和 globalData.DwmExtendFrameIntoClientArea 方法有一个新的可选参数 nSystemBackdropType - 将其设置为非零值以将云母效果应用于您的窗口。
实施了 Microsoft Edge WebView2 支持:新类CBCGPWebView2Ctrl允许您使用几行代码在您的应用程序中使用最新的 Web 技术!要了解如何使用这个新控件,请查看我们的示例 BCGPEdgeDemo 和 BCGPInternetExplorerDemo(是的,我们演示了如何将新控件与经典 IE 外观相结合!)。
RibbonBar CBCGPRibbonBar:方法 GetElementsByID 有一个新的可选参数“bIncludeActivePopup”(指定是否应将位于活动弹出面板上的功能区控件添加到搜索结果中)。 CBCGPRibbonLabel:类构造函数中添加了一个新的可选参数 nID,因此您将能够通过 ID 访问此 Ribbon 控件并对其进行修改。 CBCGPRibbonSlider:添加了滑块进度模式(见截图)。调用新方法 EnableProgressMode 以启用/禁用此模式。请查看 RibbonGadgets 示例以了解此功能的实际应用。 功能区设计器:在功能区面板选项中添加了“保留元素顺序”标志(默认情况下,功能区控件布局由框架优化,但现在您可以禁用此优化并保留原始顺序)。 功能区 QAT 自定义页面:您可以在类别组合框中显示自定义(在功能区自定义页面上创建)选项卡(类别)。要启用此功能,请将 CBCGPRibbonCustomize 的新参数 bDisplayCustomTabsInQATPage 设置为 TRUE 或调用新方法 CBCGPRibbonCustomizeQATPage::SetDisplayCustomTabs。
工具栏和菜单 CBCGPToolbarOptions:添加了一个新成员 m_lstCustomizePages,其中包含将添加到自定义属性表的自定义(用户定义)页面的类列表。 CBCGPToolbarCustomize:添加了 2 个新标志 BCGCUSTOMIZE_RESIZABLE(创建可调整大小的工具栏自定义属性表)和 BCGCUSTOMIZE_LOAD_PLACEMENT(加载工具栏自定义属性表的最近位置和大小,仅在指定 BCGCUSTOMIZE_RESIZABLE 时使用)。请查看新示例 ToolbarCustomizeDemo 以查看此功能的实际效果。 CBCGPToolbarSlider:改进了工具栏自定义对话框中的控件外观。
对话框和表格 BCGPMessageBox:改进了标题宽度超过屏幕大小时的对话框外观。此外,新的全局变量 CBCGPMessageBox::m_nLimitCaptionWidth 允许在非常长的字幕文本的情况下限制对话框宽度。例如,如果将此变量设置为 70,则字幕宽度将被限制为屏幕宽度的 70%。 CBCGPStaticLayout:实现了使用不正确(不存在的)控件禁用布局的能力。如果在添加锚点时布局管理器找不到具有指定 ID 的控件,则此窗口的布局将被禁用。调用新方法 DisableOnAddAnchorError 以启用此新功能。
可视化管理器和主题 CBCGPTagCloud:改进了一些视觉主题中的标签前景色。 工具栏和功能区按钮边框现在可以识别 DPI。例如,如果您在 200% DPI 缩放监视器上运行您的应用程序,您将在选中的按钮周围看到双边框。
网格和报表控件 改进了禁用网格控件的外观:网格内的所有文本都使用特殊的灰色前景色绘制。您可以通过调用新方法 CBCGPGridCtrl::SetDisabledTextColor 来启用此功能。 实现了对标题和单元格网格图标的 SVG 图标支持。 CBCGPTreeCtrlEx:实现了调整 GetNextItem 方法行为的能力(当显示控制过滤器栏时)。调用新方法 SetFilterBarGetNextItemOption(TRUE) 以跳过隐藏的项目。 CBCGPTreeCtrlEx:一种新方法 GetColumnValue 允许从特定列的树项目中检索值。 CBCGPGridItem:添加了水平对齐支持(见屏幕截图)。请调用新方法 SetHorzAlign 指定水平对齐方式,调用 GetHorzAlign 获取它。请查看 BCGPGridExample 应用程序(新的“格式化网格”视图)以查看此新功能的运行情况。 改进的网格放大/缩小行为:您可以通过调用新方法 CBCGPGridColumnsInfo::EnableScaledInZoomedGrid 指定自动调整网格列大小的能力。 添加网格图标自动缩放支持:当网格放大或缩小时,图像会根据当前缩放比例自动缩放(见截图)。 新的辅助方法 CBCGPGridCtrl::SelectArea 提供了一种选择一系列项目的简单方法。 实现了使用网格项前景色/背景色绘制选定网格项的能力(参见屏幕截图)。要启用此选项,请调用新方法 CBCGPGridCtrl::SetDrawCellsWithCustomColorsOnSelection。请查看 BCGPGridExample 应用程序(新的“格式化网格”视图)以查看此新功能的运行情况。
日历和计划器 CBCGPPlannerManagerCtrl:添加了 SVG 图标支持(规划器图像和上/下自定义图标)。 添加了将拖动的约会拖放到位于非显示月份的日期的功能:CBCGPPlannerManagerCtrl::SetCalendar 和 CBCGPCalendar::SetPlanner 方法有一个新的可选参数 bDropOnDaysOutsideMonths。 改进了每月视图中的约会拖动行为。
物业网格控制 CBCGPProp:一种新方法 BOOL SelectOption(const CString& strOption) 允许通过文本选择选项。 一个新类 CBCGPColorListProp 是一个带有下拉颜色列表的属性(见截图)。可以显示以下颜色集:标准(Web 颜色)、系统、强调或自定义。请查看 BCGPControls 示例以查看此新属性的实际效果。
控件 CBCGPListCtrl:添加所有者绘制组支持(见屏幕截图)。覆盖新的虚拟方法 OnDrawGroup 以实现主题化(例如基于可视化管理器的)组。请查看 BCGPControls 示例以了解此功能的实际应用。 CBCGPMenuButton:一个新的辅助方法 SetupMenu 简化了菜单按钮的初始化。 CBCGPShellList:添加了一个新方法 RemoveItem。 CBCGPButton:一个新的公共成员 m_bDisableRoundedCorners 允许禁用所有视觉主题中的圆角。 CBCGPBreadcrumb:添加了一个新方法 ResetContent。调用此方法以删除所有面包屑项。 CBCGPInfoBoxView:新成员m_clrBackground 指定视图背景颜色。
各种各样的 添加了新的构建配置选项:BCGP_EXCLUDE_DIRECT2D。如果您希望完全排除 Direct2D 并在之后重建所需的库和 DLL,请在 BCGCBProConfig.h 文件中取消注释包含此定义的行。 CBCGPToolBarImages::GrayImages:添加了 SVG 图标列表支持。 CBCGPSVGImage:添加了“paint-order”属性支持。 CBCGPGridVisualObject:如果父视觉容器有自动隐藏滚动条,网格控件滚动条也会在非活动状态下自动隐藏。 CBCGPOutlookBarPane:添加了 Windows 11/Office 2021 风格的选定按钮样式(见屏幕截图)。 调用新方法 SetButtonFullRowWidth 指定按钮样式或调用 GetButtonFullRowWidth 获取它。此外,此样式应用于属性表导航按钮(Office 2013-2022 和 Visual Studio 2012 - 2022 主题,请参见屏幕截图)。请查看 BCGPGridExample 或 BCGPDigitalDashboard 示例以查看此新样式。 CBCGPMultiViewFrameWnd:添加了 windows 导航器支持 - 请参见屏幕截图。用户可以看到完整的视图列表和停靠窗格,并在 Ctrl+tab 组合键的帮助下轻松激活所需的窗口/窗格。(在以前的产品版本中,此导航器仅在 CBCGPMDIFrameWnd 类中可用)。您必须调用 EnableWindowsNavigator 方法来启用此功能。请查看 GraphicsManagerDemo 示例以了解此功能的实际应用。
例子和样本 BCGPCalendarDemo:演示如何在所有视觉主题中使用计划器图标。 BCGPControls:添加列表控件自定义主题组演示。 BCGPEdgeDemo 和 BCGPInternetExplorerDemo:演示如何使用新的 WebView2 控件 (CBCGPWebView2Ctrl)。 GraphicsManagerDemo:添加了如何在多视图 SDI 应用程序中使用 windows navigator 的演示。 MessageBoxDemo:添加标题宽度限制演示。 ResizableForm:工具栏自定义对话框现在可以调整大小。 RibbonGadgets:添加了如何在进度模式下创建自动重复功能区按钮和滑块控件的演示。 ToolbarCustomizeDemo:一个演示工具栏/菜单自定义功能的新示例(参见屏幕截图)。 BCGPGridExample:添加了新视图格式化网格(见屏幕截图)。此视图演示如何格式化特定的网格控件单元格。您可以更改前景和背景颜色、文本样式和水平/垂直对齐方式。
修复 CBCGPGroup:解决了当指定“按父项绘制”样式且组具有复选框或单选按钮时控件呈现不正确的问题。 CBCGPMenuButton:解决了通过键盘激活菜单时缺少菜单键盘快捷方式下划线的问题。 CBCGPFileDialogEx:解决了在高 DPI 模式下树形/列表控件字体不正确的问题。 CBCGPColorComboBox:解决了错误缓存的 Windows 强调色的问题。现在,默认颜色始终与 Windows 颜色同步。 CBCGPGridCtrl:解决了在网格列不可调整大小时单击垂直线的问题。在这种情况下,现在将选择最近的网格单元。 CBCGPTabWnd:解决了当此窗口的子窗口之一已经具有焦点时,将焦点不必要地设置到选项卡窗口的问题。 CBCGPTabWnd:在选项卡更改动画结束时添加了选项卡区域重绘。有时,当应用程序繁忙时,选项卡在动画期间没有正确重绘。 CBCGPOutlookWnd:当更改 DPI 比例或移动窗口以使用其他 DPI 进行监视时,现在会重新创建垂直字体。 CBCGPGraphicsManagerGDI:解决了在某些情况下几何组缓存不正确的问题。 CBCGPGlobalUtils:解决了 GetSystemBorders 方法中系统边界大小计算不正确的一些问题。 CBCGPRibbonPanel:解决了控件布局优化后控件选项卡顺序不正确的一些问题。 CBCGPGridCtrl:解决了 GetSelectedItemCount 方法中过滤栏模式下的问题。 CBCGPGridCtrl:当项目具有粗体时,RedrawMergedItems 现在可以正常工作。 CBCGPToolbarDateTimeCtrl:改进了工具栏自定义对话框中的控件外观。 CBCGPPropertySheet:修复了 Aero Wizard 标题底线在某些视觉主题中的外观。 CBCGPGridCtrl:解决了将缩放网格移动到具有不同 DPI 值的监视器后网格列宽不正确的问题。
|