欢迎来到天天文库
浏览记录
ID:17824291
大小:2.90 MB
页数:90页
时间:2018-09-06
《基于windows 7中的 ribbon开发技术应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于Windows7中的Ribbon开发技术应用Windows7的画图工具采用了微软所称的ScenicRibbon界面,这种界面起初是在Office2007中出现的,也在WordPad出现过。虽然很多用户还在抱怨“不习惯Ribbon界面”、“很多功能找不到位置”等等,但是,随着微软的“强制”推行,Ribbon界面也在越来越被人们所接受, 很多应用软件也开始采用Ribbon界面。更重要的是,在即将到来的Windows7中,操作系统本身更是大量地应用了Ribbon界面。不管我们愿意或者不愿意,Ribbon界面开始大张旗鼓地攻占我们的软件界面,成为继下拉式菜单后新的标准用
2、户界面。作为用户,我们需要逐渐熟悉这种新的软件用户界面;而作为开发者,更是需要了解和认识这种新的软件用户界面,新的交互方式,从而利于这种新界面的优势,为用户提供更加优秀的软件。“Ribbon来了!” 为了支持开发人员,微软正在确保其设备驱动程序和应用模式在Vista和Windows7之间不变,以确保其兼容性。但是公司正在努力工作使开发人员接触Windows7的新技术,以使他们能够在他们自己的解决方案中应用一些新的高级特性。这包括诸如JumpLists,PowerShell(《WindowsPowershell应用编程最佳实践》此书我正在编写中6月左右出版)
3、,“画图”的ScenicRibboncontrol以及写字板,以及其它的组件。 在Office2007之后介绍了这个ScenicRibbon.许多昂贵的商业解决方案都已经用到它。但最后,在即将推出的windows7,微软推出了ScenicRibbon.在这里我第一次尝试在实例中使用从而在这里讲解出来。ScenicRibbon是一个在ActiveX对象附加在窗口上,它的整个宽度的窗口,它的高度可配置的。它的尺寸会根据你的需要而调整。Ribbon从一个XML中获得显示数据。这意味着您只使用几个函数调用,一些初始化并加载数据,以及一个意外事件处理程序触发Ribb
4、on。由于Ribbon是一个ActiveX界面,应用程序在XP或Vista下使用会初始化失败,但它会继续运行。当创建的XML时,运行intentcl.exe程序,创建项目工程文件。 • 创建一个IUIFrameworkIUIFramework* u_f = 0;HRESULT hr = CoCreateInstance(CLSID_ScenicIntentUIFramework, 0,CLSCTX_ALL,__uuidof(IUIFramework),(void**)&u_f); • 执行一个IUIApplication这个界面(除了IU
5、nknown成员)有以下三个功能: 1、当一个命令创建时调用ribbon:virtual HRESULT __stdcall OnCreateUICommand(UINT32 commandId, UI_COMMANDTYPE typeID,IUICommandHandler **commandHandler); 2、当ribbon被一个命令是释放时:virtual HRESULT __stdcall OnDestroyUICommand(UINT32 commandId, UI_COMMANDTYPE typeID,IUIComman
6、dHandler *commandHandler); 3、当ribbon变化时,视图也被相应的改变:virtual HRESULT __stdcall OnViewChanged(UINT32 viewId,UI_VIEWTYPE typeID, IUnknown *view,UI_VIEWVERB verb,INT32 uReasonCode); •调用IUIFramework::Initialize()与父窗口的ribbon,和执行IUIApplication。•调用IUIFramework::LoadUI()与HINSTANCE和资源名称。
7、下面的图解释了需要采取的步骤,以实现一个简单的Ribbon应用。 命令处理程序OnCreateUICommand是调用每一个命令。看看下面的命令是XML格式。必须返回一个执行IUICommandHandler(AddRef()+!)将处理命令两个成员函数: HRESULT __stdcall UpdateProperty(UINT32 commandId,REFPROPERTYKEY key, const PROPVARIANT *currentValue,PROPVARIANT *newValue); 当命令调用执行时。这个“verb
此文档下载收益归作者所有