基于Windows 7中的 Ribbon开发技术应用
2010-04-21 00:00:00 来源:WEB开发网注意,该标签已经提到命令" Tab1 "其中包含的标签名称。此标签有四个组,缩放的政策不是任意设置为"大" , "中等"或"小" ,但它依赖于一些控制和布局模板。
这意味着,如果您的组是" OneButton " ,它必须被设置为"大"规模的大小。有一个预定义的一些模板,但你也可以使用<SizeDefinition>定制模板。您可以查看示例的自定义模板。每个小组可以有许多事情,包括按钮,旋转按钮,下拉,字体控制,颜色选择器,对话框启动器,分离器,和所有的东西中描述的标记元素网页。我的上述4组有一些按钮,字体选择和颜色选择器。 我们如何获得从颜色选择器值?检查type == UI_COMMANDTYPE_COLORANCHOR和PROPVARIANT "cv"值包含一个整数,代表的RGB 。我们如何获得字体选择值?该类型UI_COMMANDTYPE_FONT和PROPVARIANT "cv"值包含一个IUnknown ,但我还没有找到如何获得让字体!
根据您的应用程序的背景,您可能需要一些标签和/或组显示或者隐藏。明确的插入每一个组/标签,ribbon提供了"应用模式" ,这是一个32位模式的字节设置,他们应该是"active" 。应用模式适用于组和标签。
例如,这里的定义是在" Tab1 "
<Tab CommandName="Tab1" ApplicationModes="0,2">
这意味着,当位0或2位在当前选定的模式设置,然后在标签的显示。因此,当我请Ribbon:: SetModes(0) ,此标签将会隐藏。当我使用2个或8或任何整数,那么0或2位设置,该标签将显示。 同样可以很容易的适用于程序组。<Group CommandName="g1" SizeDefinition="OneButton" ApplicationModes="3"> 为了获取/设置ribbon管理的一些状态,。您可以使用IUIFramework:: GetUICommandProperty获得一个特殊键,或者您也可以查询"cv" IUnknown成员通过RIBBON_MESSAGE结构的IPropertyStore ;使用GetValue() / SetValue() /提交到读/写性能引用控制。还有一些"整体"键,您查询IUIFramework直接的IPropertyStore 。 例如,当我得到通知, WndProc的颜色选择,它适用于它的背景颜色的ribbon如下:
PROPVARIANT val;// Get the property of the control we pushedHRESULT hr = rm->u_f->GetUICommandProperty(rm->cmd,UI_PKEY_Color,&val);
IPropertyStore* st = 0;rm->u_f->QueryInterface(
__uuidof(IPropertyStore),(void**)&st);if (st && SUCCEEDED(hr)
)
{
st->SetValue(UI_PKEY_GlobalBackgroundColor,val); st->Commit();
}
如果在字体控制,您只需查询IUnknown 指针* pointer的IPropertyStore和使用UI_PKEY_FontProperties_XXXX键。
总结:随着Windows平台的发展升级,往往都伴随着系统图形界面的重新设计。从Windows XP到Windows Vista,最大的革新就是Windows Aero的引入。
而在微软的下一代Windows平台Windows 7中,虽然Aero被保留下来,但是Windows 7的图形用户界面更多的是朝着Office 2007相同的方向前进,无论是系统自带的工具软件,例如画图、写字板等,还是上层的第三方应用软件,例如Office 2007、AutoCAD、SnagIt等等,都全面应用了Ribbon界面。
更多精彩
赞助商链接