检测快速访问命令状态

时间:2015-11-05 14:32:17

标签: delphi ribbon windows-ribbon-framework

我们有一个使用Windows Ribbon Framework用于UI的应用程序。应用程序本身是用Delphi编写的,并使用Windows Ribbon Framework for Delphi与功能区API进行交互。

我们的功能区XML将很少的命令放入Quick Access工具栏。然后,可以使用内置功能区机制(选择下拉/下拉按钮并单击命令名称)或选择打开配置对话框的More commands命令来删除/添加命令。

Quick Access snapshot

我遇到的问题是我无法找到获取QA集合中当前命令状态的方法(无论它们是否可见)。

在上面的示例(图片)中,我想检测前五个命令是否被检查,而最后一个命令是不是这样,我可以相应地准备配置对话框。

我可以枚举IUICollection并访问存储在其中的项目。我也可以为每个项目获得UI_PKEY_CommandId。但是,我无法找到读取已检查/未检查状态的方法。我尝试阅读集合中所有项目的UI_PKEY_BooleanValueUI_PKEY_Enabled,但它们不会返回该状态。

我还试图监控IUICommandHandler.UpdateProperty但是在选中/取消选中此项时不会调用它(除了使用UI_PKEY_Label键调用它之外)。

Ribbon API是否支持此功能?

0 个答案:

没有答案