如何使用Office Ribbon UI以编程方式禁用按钮或从下拉列表中添加/删除项目 我编写了一个简单的C++ COM Office插件,加载了一个带XML定义并显示了一个简单的带标签。它具有一些按钮和下拉列表(组合框/下拉列表)。我可以处理按钮点击事件和组合选择更改事件,就像一个符咒
现在,我想根据活动文档中的更改更新功能区UI,以便禁用一些按钮,并从combobox中添加/删除一些项目如何使用Office Ribbon UI以编程方式禁用按钮或从下拉列表中添加/删除项目 我编写了一个简单的C++ COM Office插件,加载了一个带XML定义并显示了一个简单的带标签。它具有一些按钮和下拉列表(组合框/下拉列表)。我可以处理按钮点击事件和组合选择更改事件,就像一个符咒,c++,com,vsto,ms-office,ribbon,C++,Com,Vsto,Ms Office,Ribbon,现在,我想根据活动文档中的更改更新功能区UI,以便禁用一些按钮,并从combobox中添加/删除一些项目 我上下搜寻,找不到控制这一切的方法。我是否遗漏了一些非常明显的东西?如何从代码中的任何位置更改按钮启用状态?我看到的使用Windows功能区控件的方式:必须在设计时在XML标记中指定额外的按钮。在运行时,您可以调用SetModes()来指定在功能区中显示哪些小部件集 像这样: <Application.Views> <Ribbon> <R
我上下搜寻,找不到控制这一切的方法。我是否遗漏了一些非常明显的东西?如何从代码中的任何位置更改按钮启用状态?我看到的使用Windows功能区控件的方式:必须在设计时在XML标记中指定额外的按钮。在运行时,您可以调用
SetModes()
来指定在功能区中显示哪些小部件集
像这样:
<Application.Views>
<Ribbon>
<Ribbon.Tabs>
<Tab CommandName="cmdTabMain" ApplicationModes="0,1">
<Group CommandName="cmdGroupCommon"
SizeDefinition="ThreeButtons"
ApplicationModes="0,1">
<Button CommandName="cmdButtonNew" />
<Button CommandName="cmdButtonOpen" />
<Button CommandName="cmdButtonSave" />
</Group>
<Group CommandName="cmdGroupSimple"
SizeDefinition="TwoButtons"
ApplicationModes="0">
<Button CommandName="cmdButtonSwitchToAdvanced" />
<Button CommandName="cmdButtonDropA" />
</Group>
<Group CommandName="cmdGroupAdvanced"
SizeDefinition="FourButtons"
ApplicationModes="1">
<Button CommandName="cmdButtonSwitchToSimple" />
<Button CommandName="cmdButtonDropA" />
<Button CommandName="cmdButtonDropB" />
<Button CommandName="cmdButtonDropC" />
</Group>
</Tab>
</Ribbon.Tabs>
</Ribbon>
</Application.Views>
然后(无论如何,在C语言中)在单击处理程序中执行\u ribbon.SetModes(1)
或\u ribbon.SetModes(0)
谢谢!你真的很努力,但这不是我想要的。我在专门寻找C++解决方案。我的问题是,我不知道如何为功能区中的特定按钮获取一些
IButton
界面,并调用其IButton->Enable(false)
方法。我希望现在能说得更清楚。