写这个东东,其实就是写一个COM加载项。用VC开发,可以使用MFC、也可以使用ATL;用VB也是个不错的选择。我最终选用了ATL。主要是VC我用得比较多,而ATL通过模板库会给开发带来极大的便利,因此选用了VC使用ATL方式开发。事实证明我的选择是正确的。
使用VB调用COM接口要相对要方便一些,VB可以很方便地对COM进行编程,编程中也可以直接使用Word的宏代码,基本不用做代码转换。VB不好的地方:发布的时候要带它的运行时库(有点大),还有就是VB的运行效率比不上VC(不过小工程不明显)。
开始编程,使用VC向导,可以很快的生成COM的框架,然后向工程里插入一个simple object(在菜单插入->插入ATL对象里面)。通过这个对象来改变WORD的菜单、TOOLBAR,这方面的文章很多,我的开发就是借鉴了徐景周的一篇文章,到网上找一下,很多转载(我发现网上原创的东西实在不多呀)。这样一个简单的COM加载项的框架就建好了。
手写签名部分的实现,这部分都是一些相对编程者容易的问题。简单说一下,首选插入一个对话框(在菜单插入->插入ATL对象里面),加入几个按钮,写一个单向链表用来存签名的笔画,用兼容DC、兼容位图、OleCreatePictureIndirect,把图片创建成一个IPictureDisp对象,以供下面的使用。
再插入一个Full Control对象,方法同上。把上面一步生成的IPictureDisp写进Full Control对象,再调用WORD的AddOleCtrol方法将这个东东插入就可以了。
这就是一个简单的流程。说的很粗略,因为不知道感兴趣的人多不多。
在开发的过程中我遇到了以下这样一些问题,后来慢慢解决了,如果大家有兴趣可以来交流一下。
1. 如何在插入对象中取到WORD的ActiveDocument的指针(这个不能通过保存的方法来)。
取Container的指针,再查IDispatch的接口。
2. 如果在程序里控制控件的删除,如在控件内点击,通过上下文菜单文菜单删除控件。
可以给控件设置一下标志,然后通过Word的方法遍历对象组,检查对应的标志,然后删除。
3. 如何保存。
可以重载框架的Save和Load方法,把对象的相关属性保存。这两个方法会由WORD自动调用。
4. 如何使用TOOLTIP。
这个在MSDN里有详细的帮助,可以参照解决。
5. 如何移动控件。
处理控件的OnLButtonDown/OnMouseMove/OnLButtonUp消息,然后通过Word的方法移动控件。
简单写了一下思路,欢迎交流。
参考资料推荐:
1、深入解析ATL(第二版,不知有没有更新的版本出现)、电子工业出版社
2、ATL开发指南、电子工业出版社
3、COM技术内幕、清华大学出版社
/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:wallimn 电邮:wallimn@sohu.com 时间:2005-10-15
博客:http://wallimn.iteye.com
网络硬盘:http://wallimn.ys168.com
/***********文章发表请与本人联系,作者保留所有权利*************/
分享到:
相关推荐
介绍在VC6.0下如何创建ATL com组件,并提供实例说明如何使用以及释放ATL控件。 另外,ATL组件也可以应用在网页中。
这个程序是基于VC的 ATL的简单程序,程序生成一个DLL的activex空件, 只包含一个函数 add 可以用下面代码实现网页调用(当然要先注册控件了) <TITLE>ATL 3.0 test page for object MyFunAdd ...
VC 6.0使用ATL方法编写实现ActiveX控件,编译最终生成Polygon.dll文件,没有窗口可查看。这个源码是来自国外,源代码含注释,代码规整,在ATL方法编写DLL控件方面,还是很有参考价值的。
COM与数据库访问 13 2.1 COM的基本原理 13 2.1.1 COM历史 13 2.1.2 COM结构 14 2.1.3 COM优势 15 2.1.4 COM接口 16 2.1.5 COM与数据库访问 17 2.1.6 COM与Internet 17 2.2 ActiveX的数据库...
一个用vc6.0 编写的word插件 清楚的写明了 建造的过程 介绍了如何建立以个ATL工程以及动态链接库工程
VC COM ATL为Office Word编写插件.zip
WORD2003签名签章插件 1.前言 这是我学习ATL的成果,学习过程及程序的编写,前前后后共用了一个多月的时间,花了不少的心血。其间遇到了不少困难,终于都一一解决了。这要感谢www.csdn.net上的热心朋友,从他们的...
VC6.0使用ATL编写COM的入门级实例代码教程
基于ATl的Word签名插件框架 ,属于未完成版,希望有兴趣的,帮帮忙!!!
VC ATL COM 入门实例教程 VC ATL COM 入门实例教程
VC COM ATL为Office PowerPoint PPT编写插件.zip
atl开发指南 atl开发指南 atl开发指南 atl开发指南 atl开发指南
可以完成手写签名及插入签章的功能。插入签名或签章后,可以监控WORD文档是否被修改。软件的使用界面很简单,只是在WORD里插入了一个工具栏,上面有三个按钮。其它的功能在插入的签名或签章上按右键根据弹出菜单选择...
COM ATL 开发 C++ VC COM ATL 开发 C++ VC
WORD电子签名插件,支持手写、本地电子图章、以及网络图章功能。软件使用VC6,以ATL方式编写,软件小巧精致。 这是我学习ATL的成果,学习过程及程序的编写,前前后后共用了一个多月的时间,花了不少的心血。其间...
安装了好多VC6版本都不会有菜单插入ATL对象项,绿色版更加不行。功夫不负有心人,终于找到个有菜单项ATL对象的VC6完整版本,共享出来,希望能帮到曾像我样找VC6完整软件版本的人.
使用atl开发word插件,支持robbin工具条。开发环境:vs2012
ATL开发指南.rar 完整的 ATL开发指南 提供下载 学习com atl编程非常好的资料
VC COM ATL为Office Excel编写插件.zip
使用VC++ ATL实现Office的COM插件 使用VC++ ATL实现Office的COM插件