Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9427437
  • 博文数量: 1227
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 20273
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 12:40
文章分类

全部博文(1227)

文章存档

2010年(1)

2008年(1226)

我的朋友

分类: C/C++

2008-04-23 22:06:49

用VC6.0编写Word插件(Office2007篇)

作者:



简介

  微软在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的例子:


 

    

       

          

             

               
我们可以把这个XML字符串放到我们的资源文件里面,并且在raw_GetCustomUI中传递给Office。以下是这个函数的简单实现。

到目前为止,在Word的UI上面我们应该可以看到我们的插件了。如下图所示。如果还不能看到的话,请检查前面的步骤是否有错误。

  这时,当你点击按钮的时候,会发现没有任何反应。那么,该如何响应对应的按钮事件呢?这就需要我们修改两个地方。首先在XML字符串里面注明按钮的响应函数。


 

    

       

          

             

               
然后,在我们的组件里面新增这个接口函数。





一定要注意新增的这个接口函数必须与XML里面指定的相同。现在你再点击按钮的话,就会有一个对话框弹出来了。

总结

  Office 2007系列的插件,跟以往的插件编写方法有了很大的不同。通过引入XML的UI安排方式,大大的增加了灵活性。本着与时俱进的精神,我们应该跟随微软的脚步,尽快掌握这个技术。

阅读(506) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~