社区
ATL
帖子详情
在控件中插入word
steven19800718
2003-04-15 09:31:28
我要做一个activex控件,控件中有一打开按钮,可以打开一word文件,打开以后能显示在控件中,并且带有自己的菜单,是不是要用到ole技术?那位请赐教!
...全文
114
6
打赏
收藏
在控件中插入word
我要做一个activex控件,控件中有一打开按钮,可以打开一word文件,打开以后能显示在控件中,并且带有自己的菜单,是不是要用到ole技术?那位请赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
林仪明
2003-04-17
打赏
举报
回复
在实现OLE对象的包容时,仅仅需要实现5个接口,如果更加苛刻一些,甚至可以只实现3个,我摘录一段我写的东西如下:
========================================
做为OLE包容必须实现的接口有3个,分别是IOleClientSite、IAdviseSink、IOleInPlaceSite,以下分别来介绍。(由于每一个接口都是从IUnknown继承,因此IUnknown的方法实现在介绍时略去)
IOleClientSite接口用来为OLE对象提供一个启动时的“站点”接口,主要用来为OLE对象提供窗口位置、用户界面、资源、名字服务的信息,OLE对象在启动时需要查询和调用这个接口来安排自身事务。每一个OLE对象都需要对应有一个IOleClientSite接口,因此如果在应用程序中同时启动多个OLE对象,他们必须共享或者独立拥有一个IOleClientSite接口。IOleClientSite包含了方法SaveObject、GetMoniker、GetContainer、ShowObject、OnShowWindow、RequestNewObjectLayout(关于具体的说明读者可以参看MSDN,在此不一一讨论,下同)。其中仅仅有SaveObject方法比较重要,需要实现,其他方法均可简单返回(返回S_OK值)或者声明为未实现(返回E_NOTIMPL值)。
IAdviseSink接口用来使得包容可以在OLE对象的数据改变、试图改变、文档改变时有机会响应。需要注意的是,IAdviseSink接口的方法被OLE对象调用时都是同步的,因此如果包容在响应这些调用时耗费过长的时间(例如大规模的计算),会造成用户界面“僵死”现象。IAdviseSink包含了方法OnDataChange、OnViewChange、OnRename、OnSave、OnClose。实现时按照需要实现,甚至全部可以简单返回。另外一点需要注意的是,OLE对象不会主动的获取包容的IAdviseSink接口,因此我们必须通过在创建OLE对象后,调用OLE对象IOleObject接口的Advise方法来向对象“注册”这个接口。
IOleInPlaceSite接口从IOleWindow接口继承而来,用来在OLE包容和OLE对象之间维持一种互相联系,例如OLE对象可以从OLE包容获得上下文窗口位置的信息,OLE包容也可以在OLE对象实地激活时获得通知以做出相应的安排。IOleInPlaceSite包含了方法GetWindow、ContextSensitiveHelp(这两个方法是从IOleWindow继承而来)、IOleInPlaceSite、CanInPlaceActivate、OnInPlaceActivate OnUIActivate、GetWindowContext、Scroll、OnUIDeactivate、OnInPlaceDeactivate、DiscardUndoState、DeactivateAndUndo、OnPosRectChange。一般而言,比较重要的是:GetWindowContext,OLE对象可以在此获得OLE包容的一些设定信息,以作自身响应;GetWindow,OLE对象需要在这里获得母窗口句柄;OnUIActive、OnUIDeactive、OnInPlaceActive、OnInPlaceDeactive、DeactiveAndUndo,这些都是OLE对象在试图变化时的一些通知函数,OLE包容需要在这时为OLE对象安排好诸如菜单等等资源的协调,以及调用OLE对象做复合文档的永久化、回复等等,都是比较简单的实现。其他的接口函数均可按需要实现,否则简单返回即可。
以上就是实现OLE包容必须实现的三个接口,而且不是所有的接口都必须完全实现,依靠现在这些知识我们已经可以自行实现一个简单的包容器了。但是这时还仅仅是最简单的实现,我们还不能安排OLE对象的实地激活,OLE对象的菜单工具条插入,我们还需要讨论两个接口来完善我们的OLE包容器。注意的一点,这并不是必须的,尤其是在实现某些轻量级的OLE包容时。
第一个接口是IOleInPlaceFrame,这个接口是做为OLE包容器最高层框架窗口实现的一个接口,用来在框架窗口中合并OLE对象的菜单、工具条,显示OLE对象状态,并可以向OLE包容传递键盘消息,再由OLE包容向OLE对象传送,以实现某些热键。IOleInPlaceFrame同时继承了IOleInPlaceUIWindow接口,IOleInPlaceUIWindow接口又继承了IOleWindow接口,因此实际上我们在实现这个接口时需要实现4个接口的方法(包含IUnknown)。这些方法是:GetWindow、ContextSensitiveHelp、GetBorder、RequestBorderSpace、SetBorderSpace、 SetActiveObject、InsertMenus、SetMenu、RemoveMenus、SetStatusText、EnableModeless 、TranslateAccelerator(未包含IUnknown的三个方法)。实现时同样不比完全实现,按照需要实现就可以了,不实现的或者简单返回,或者返回未实现。在本文后面的例子中,选择实现了ContextSensitiveHelp(安排OLE对象显示右键菜单)、GetBorder(安排OLE对象获得母窗口的边界)、SetBorderSpace(安排OLE对象的边界)、SetActiveObject(为母窗口记录下激活的OLE对象)、InsertMenus(合并菜单)、SetMenu (设置菜单)、RemoveMenus(消除菜单)、TranslateAccelerator(向OLE对象传递热键)。
第二个接口是IOleDocumentSite,这个接口是的OLE中的复合文档对象可以被实地激活,然后显示工具条,标尺之类的用户界面元素。这个接口仅有一个方法ActivateMe,但是却十分重要。ActiveMe接受一个参数IOleDocumentView *pView,这个参数是欲激活的OLE对象的接口,我们可以借此接口查询到OLE对象的IOleDocument接口,然后调用其方法CreateView建立起OLE对象自身的视图,接下来调用IOleDocumentView的方法SetInPlaceSite向OLE对象“注册”OLE包容的IOleInPlaceSite接口。接下来顺次调用IOleDocumentView的UIAcitve、SetRect、Show三个方法激活用户界面元素、安排好OLE视图位置、最后使之显示出来。
Yaoling
2003-04-17
打赏
举报
回复
我做过这个......
http://lovexing.myrice.com/
RedStar81
2003-04-16
打赏
举报
回复
OLE文档(这里就是WORD文档)和OLE服务器(你的控件)开发~~
林仪明
2003-04-16
打赏
举报
回复
这个问题问了很多遍了。
http://expert.csdn.net/Expert/topic/1518/1518314.xml?temp=.9133417
steven19800718
2003-04-15
打赏
举报
回复
能说的具体点吗?谢谢!
volcary
2003-04-15
打赏
举报
回复
1.找到WORD控件,该控件为*.ocx或 *.dll,寻找的方法可以是使用VB加入控件,在VB中会显示出
这个控件的文件名,找到WORD的相应文件
2.写一个容器或者使用ie等,将此文件以object形式加入。
把页面
控件
数据导入到
word
或excel完整示例
把页面
控件
数据导入到
word
或excel完整示例,包括Dll文件
基于WPF的richtextbox
控件
,按格式导入导出
word
文档内容
基于WPF的richtextbox
控件
,按格式导入导出
word
文档内容
Word
插入
表格
控件
Ribbon
类似
word
2010的
插入
表格自定义
控件
, 采用Ribbon第三方
控件
。
word
gif
控件
能让gif图片动起来 第1步:把AniGIF.ocx复制到“\windows\system32\”文件夹下。 第2步:打开“
Word
选项”对话框,切换到“常用”选项页,在右侧窗格
中
勾选“在功能区显示"开发工具"选项卡”复选项。回到页面上方功能区,点击“开发工具”选项卡
中
“
控件
”功能组右下角的“旧式工具”按钮,单击“其他
控件
”按钮,单击“注册自定义
控件
”,找到AniGIF.ocx这个文件,确认后就可以在“其他
控件
”的列表框
中
找到注册好的Animation Gif Control。 如果使用的是
Word
2003,请从视图菜单下选择“工具栏→
控件
工具箱”,然后单击
控件
工具箱右下角的“其他
控件
”,此时会打开一个悬浮框,拖曳右侧的滚动条到最底端,找到“注册自定义
控件
”,指定
控件
文件所在的路径即可完成注册。 第3步:右击刚才所
插入
的
控件
框,打开“属性”对话框,可以看到“GIF”后面显示的是“No Gif”。将光标定位至“No GIF”文本框
中
,此时会看到右侧出现了“...”的字样,单击打开“属性页”对话框,通过“Browse”按钮指定需要
插入
的.gif动画文件,如图1所示,我们已经可以在这里看到相关的预览内容。最后单击
控件
工具栏
中
的“设计模式”按钮退出编辑状态,GIF动画就真正动起来了
增加
word
控件
的源码
增加
word
控件
的源码,实现增加印章验证、编辑文档、手工签名、
插入
模板、文字套红等操作的实例
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章