OleContainer打开word后,如果屏蔽Ribbon菜单下的某些功能

xhh_88 2010-01-14 10:55:45
用OleContainer控件打开了一个word文档,现在想让word2007的Ribbon菜单下有些功能不能使用,比如要让“审阅”功能不能使用,应该怎么控制呢! 好像使用CommandBars 及Controls属性无法做到!
...全文
577 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcking1 2012-03-13
  • 打赏
  • 举报
回复
不知道LZ解决这个问题没有?
金卯刀 2010-01-19
  • 打赏
  • 举报
回复
呵呵,只能try and try, goood luck
xhh_88 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 avan_lau 的回复:]
引用 15 楼 xhh_88 的回复:
引用 13 楼 avan_lau 的回复:
看起來只能借助add in express了。


这个是收费的,他应该是office插件,如果使用office插件,自己也可以写的!


因為我看msdn介紹的hiding Group, hiding tab都會去取得office的GetCustomUI這個接口函數,然后掛上自己的。
但這一切,似乎要在delphi先做一些相應的定義。
所以考慮用add in express。

或許還有其他方法,只是我們不知道...

查找到有一個跟你一樣需求的,是英文網站。他到處發帖子,但沒有得到回復,呵呵。
[/Quote]
呵呵,也许做这个不是主流,可能研究方向错了!
金卯刀 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 xhh_88 的回复:]
引用 13 楼 avan_lau 的回复:
看起來只能借助add in express了。




这个是收费的,他应该是office插件,如果使用office插件,自己也可以写的!
[/Quote]

因為我看msdn介紹的hiding Group, hiding tab都會去取得office的GetCustomUI這個接口函數,然后掛上自己的。
但這一切,似乎要在delphi先做一些相應的定義。
所以考慮用add in express。

或許還有其他方法,只是我們不知道...

查找到有一個跟你一樣需求的,是英文網站。他到處發帖子,但沒有得到回復,呵呵。
xhh_88 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 avan_lau 的回复:]
看起來只能借助add in express了。


[/Quote]

这个是收费的,他应该是office插件,如果使用office插件,自己也可以写的!
xhh_88 2010-01-19
  • 打赏
  • 举报
回复
var
MyWordOLE:TOleContainer;
IOPO:IOleInPlaceObject;
begin
if MyWordOLE.State in [osUIActive] then
begin
MyWordOLE.OleObjectInterface.QueryInterface(IOleInPlaceObject,IOPO);
IOPO.UIDeactivate;
IOPO :=nil;
end;

上面的代码可以隐藏全部的菜单和工具栏(包括ribbon);但不是我想要的效果;我只想控制部分功能。
金卯刀 2010-01-19
  • 打赏
  • 举报
回复
看起來只能借助add in express了。

xhh_88 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 avan_lau 的回复:]
是否試過  CommandBars['ribbon'].Controls  ?
[/Quote]
试过了,设置没有效果
金卯刀 2010-01-19
  • 打赏
  • 举报
回复
是否試過 CommandBars['ribbon'].Controls ?
xhh_88 2010-01-19
  • 打赏
  • 举报
回复
还没有解决!
xhh_88 2010-01-14
  • 打赏
  • 举报
回复
等待。。。
brightyang 2010-01-14
  • 打赏
  • 举报
回复
up
金卯刀 2010-01-14
  • 打赏
  • 举报
回复
參考一下msdn操作commandbars的范例(for word2007)
http://msdn.microsoft.com/en-us/library/bb212714.aspx
金卯刀 2010-01-14
  • 打赏
  • 举报
回复
xhh_88 2010-01-14
  • 打赏
  • 举报
回复
遍历commandbars可以找到ribbon,它是commandbars成员的最后一个,就是不知道怎么控制,调用set_Visible和set_Enable方法都无效的
xhh_88 2010-01-14
  • 打赏
  • 举报
回复
使用CreateOleObject()打开的方式,能处理的,OleContainer也应该能处理。关键是增么找到Ribbon
金卯刀 2010-01-14
  • 打赏
  • 举报
回复
據了解的資料來看,Ribbon是commandbars成員之一,能找到ribbon,應可解決你的問題
dd_zhouqian 2010-01-14
  • 打赏
  • 举报
回复
up
iseekcode 2010-01-14
  • 打赏
  • 举报
回复
很早前用过olecontainer,后来发现控制WORD时总不尽如人意,就转到使用CreateOleObject()来控制WORD,显示用webbrowser,比使用olecontainer功能强大。那个方便啊...
再后来,OFFICE2007出来,webbrowser不能再装WORD,EXCEL之类了,不知道MS是怎么想的。
不过,是不是可以在使用olecontainer的同时,使用ole方法连接,再调用VBA间接控制比如你说的“审阅”功能?
有时间的话,我也试一试

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧