用VC6.0编写Word插件(Office2007篇)
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
简介
微软在06年底推出了两个重量级的产品:Vista和Office 2007。在Office2007中使用了新的UI方式。微软大力鼓吹这种叫做Ribbon的新的UI将会给使用Office的人带来更大的便利性。在Office插件方面,微软保持了对原有版本 (office 2K、XP、03) 的兼容性,都被放到一个叫做Add-In的Tab里面,如下图所示。
不过样子比较难看,到底有没有办法让界面做得更漂亮一点呢?答案是肯定的。本文假设读者已经阅读并理解了我的上一篇文章:
“用VC6.0编写Word插件(Office2K、XP、03)”
首先,引入新的Office的几个库文件,如果你的电脑安装了Office 2007,那么下面几个文件就会存在你的硬盘里面。
然后,原来的那个WordAddin需要继承一个名叫IRibbonExtensibility新的接口,并实现这个接口必须的函数raw_GetCustomUI。
然后,原来的那个WordAddin需要继承一个名叫IRibbonExtensibility新的接口,并实现这个接口必须的函数raw_GetCustomUI。
实现上边这个函数的目的是,因为Office2007在启动的时候就会询问插件的IRibbonExtensibility接口是否存在,如果该接口存在的话,就会调用这个接口的函数raw_GetCustomUI,在这个函数里面,我们必须把我们的UI通过XML的方式传给Office 2007,这样,在XML里面,我们可以自己定义我们需要的UI形式,样式非常丰富多彩,只有想不到,没有做不到。以下是一个简单的XML的例子:
02.
<ribbon startFromScratch=
"true"
>
03.
<tabs>
04.
<tab id=
"CustomTab"
label=
"MyTab"
>
05.
<group id=
"SimpleControls"
label=
"MyGroup"
>
06.
<button id=
"Button1"
imageMso=
"HappyFace"
size=
"large"
07.
label=
"MyButton"
/>
08.
</group>
09.
</tab>
10.
</tabs>
11.
</ribbon>
12.
</customUI>
我们可以把这个XML字符串放到我们的资源文件里面,并且在raw_GetCustomUI中传递给Office。以下是这个函数的简单实现。
到目前为止,在Word的UI上面我们应该可以看到我们的插件了。如下图所示。如果还不能看到的话,请检查前面的步骤是否有错误。
这时,当你点击按钮的时候,会发现没有任何反应。那么,该如何响应对应的按钮事件呢?这就需要我们修改两个地方。首先在XML字符串里面注明按钮的响应函数。
02.
<ribbon startFromScratch=
"true"
>
03.
<tabs>
04.
<tab id=
"CustomTab"
label=
"MyTab"
>
05.
<group id=
"SimpleControls"
label=
"MyGroup"
>
06.
<button id=
"Button1"
imageMso=
"HappyFace"
size=
"large"
07.
label=
"MyButton"
08.
onAction=
"OnMyButton"
/>
//新增的响应函数
09.
</group>
10.
</tab>
11.
</tabs>
12.
</ribbon>
13.
</customUI>
然后,在我们的组件里面新增这个接口函数。
一定要注意新增的这个接口函数必须与XML里面指定的相同。现在你再点击按钮的话,就会有一个对话框弹出来了。
总结
Office 2007系列的插件,跟以往的插件编写方法有了很大的不同。通过引入XML的UI安排方式,大大的增加了灵活性。本着与时俱进的精神,我们应该跟随微软的脚步,尽快掌握这个技术
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=791