用OleContainer嵌入WORD,但打印按钮为灰色,如何实现打印功能(还没解决) ( 积分: 300 )

  • 主题发起人 主题发起人 tongdanfeng
  • 开始时间 开始时间
楼上说的是够玄的,别是自己杜撰出来的吧。我估计就是CreateOleObject吧,才疏学浅,等高人来确认一下
 
确实,non-olecontainer方式就是不使用OleContainer的方式(我以为这一点是很容易理解的,却没想到让你们觉得“玄”了,sorry),也就是CreateOleObject方式。
我的程序代码是针对Excel的,不是Word,并且确实有不方便公开的原因,请原谅。
不过把原理弄清楚了之后,程序实现起来并不是很难,相信LZ凭自己的能力可以搞定。
 
谢谢,younghat,我再试试
 
凑个热闹,看了点资料,想法还不成熟,希望能给楼主一些借鉴价值

我用VBA在Word环境里面可以设置某个按钮的Enabled是否为False,所以我在VBA里面可以控制那个打印的按钮为灰色,我用同样的办法在Delphi里面判断,那个按钮的Enabled确实为False,也就是楼主的说法一样,转成Delphi的代码如下:

OleContainer1.OleObject.CommandBars['Standard'].Controls[2].Enabled := True;// 设置按钮可用
OleContainer1.OleObject.CommandBars['Standard'].Controls[2].Execute;// 执行,相当于单击

其中Standard常用工具条,
2表示打开
1为新建
3为保存
5为打印预览,也就是按钮的顺序,自己可以查
对应的VBA代码为
CommandBars("Standard").Visible = True
CommandBars("Standard").Controls(2).Execute

我现在这样做会发生两个错误,如果设置visible,那么工具栏整个都不见了,如果用DoVerb刷新,刚刚的设置就不生效,另外一个是执行Execute会发生错误
个人看法,希望对楼主有借鉴意义,
另外
to younghat,如果方便请告知方法,这个问题在论坛好像几年都没有解决,谢谢
 
后退
顶部