我们有一个使用Windows 功能区框架作为 UI 的应用程序。该应用程序本身是用 Delphi 编写的,并使用Windows Ribbon Framework for Delphi与功能区 API 进行交互。
我们的功能区 XML 在快速访问工具栏中放置了一些命令。然后可以通过使用内置功能区机制(选择下拉/下拉按钮并单击命令名称)或通过选择More commands
打开配置对话框的命令来删除/添加命令。
我遇到的问题是我找不到获取 QA 集合中命令当前状态的方法(无论它们是否可见)。
在上面的示例(图片)中,我想检测前五个命令已检查,而最后一个命令未检查,因此我可以相应地准备配置对话框。
IUICollection
枚举和访问存储在其中的项目没有问题。我也可以得到UI_PKEY_CommandId
每个项目的。但是,我无法找到读取选中/未选中状态的方法。我尝试阅读集合UI_PKEY_BooleanValue
中UI_PKEY_Enabled
的所有项目,但它们没有返回该状态。
我也尝试过监视IUICommandHandler.UpdateProperty
,但是当检查/未选中此类项目时,它没有被调用(除了使用UI_PKEY_Label
键调用)。
功能区 API 是否甚至支持此功能?