请www,歪就歪和O*O等朋友进来, 能否在EXCEL中添加菜单并响应事件调用自己的程序??另加上仅余的70分!!说到做到 ! (50分)

  • 主题发起人 主题发起人 fatbug
  • 开始时间 开始时间
F

fatbug

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp; &nbsp; 我在DFW里只找到一个类似的帖子,<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=159234<br>是歪就歪提的,<br>&lt;&lt;在Notepad上加入自己的菜单项,并能响应Onclick事件&gt;&gt;<br><br>&nbsp;<br>&nbsp; &nbsp; &nbsp;请问: &nbsp;O*O, 歪就歪, DreamTiger ,question 等各位朋友, 能否<br>把你们得到的O*O当时写的代码也给我一份呢?? 谢谢!<br><br>&nbsp; &nbsp; 我希望调用EXCEL,然后在其中添加菜单,可是如何让其<br>中添加的菜单项被点击后可以响应事件并调用自己的程序呢?<br>恳请各位大侠指点一二!!(别用VBA!)<br><br>对了, 我的邮箱是 huntgold@21cn.com
 
先找到excel的句柄,然后用菜单的插入菜单项的api<br>我以前插在了金山毒霸上面,呵呵有意思
 
&nbsp; &nbsp;to &nbsp;ROCKJIE: 能否给出详细一些的例子和说明??
 
以下程序在Word 2000的“文件”菜单前添加“Custom”菜单,<br>并在其下添加“Import”菜单项。请仔细研究,我已经调试通过。<br>&nbsp; &nbsp; Excel应该是类似的.<br><br>uses ...,ComObj;<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; WordApp,<br>&nbsp; myMenuBar,<br>&nbsp; newMenu,<br>&nbsp; ctrl1:OleVariant;<br>begin<br>&nbsp; WordApp &nbsp; :=CreateOleObject('Word.application');<br>&nbsp; WordApp.visible:=true;<br>&nbsp; myMenuBar :=WordApp.CommandBars.ActiveMenuBar;<br>&nbsp; newMenu &nbsp; := myMenuBar.Controls.Add(10,1,1,1,true);<br>&nbsp; newMenu.Caption := 'Custom';<br>&nbsp; ctrl1 := newMenu.CommandBar.Controls.Add(1,1,0,1,false);<br>&nbsp; ctrl1.Caption &nbsp; &nbsp; := 'Import';<br>&nbsp; ctrl1.TooltipText := 'Import';<br>&nbsp; ctrl1.Style &nbsp; &nbsp; &nbsp; := 2;<br>end;<br>
 
to &nbsp;jsxjd: &nbsp;<br>&nbsp; &nbsp; &nbsp;非常感谢你<br>&nbsp; &nbsp; &nbsp;添加菜单是没有问题的, 通过调用EXCEL中的对象方法即可完成<br>&nbsp; &nbsp; &nbsp;难在如何让这个菜单被点击后启动的是我用DELPHI编制的表单,<br>&nbsp; &nbsp; &nbsp;而不是VBA中的过程
 
to:jsxjd<br>人家不是说不要VBA的嘛!括号里面的字也要看!~~呵呵<br><br>to:楼主,我晚上发给你!
 
&nbsp; &nbsp;to &nbsp;rockjie: &nbsp;我急切地等待你的回信!!
 
&nbsp; &nbsp;rockjie: &nbsp;正在等你的代码呢? &nbsp;祝中秋快乐
 
哦,真是没办法啊,得到Excel的句柄你用spy++查一下就知道了,然后就是在上面加菜单啊,<br>我在找Excel的菜单句柄的时候卡壳了,因为Excel的最应用窗体上是不包括菜单的,所以我怎么<br>也得不到菜单句柄啊,你在研究一下吧,如果加好了菜单你可以这么定义一个消息<br>procedure HandleCommand(var msg: Tmessage); message wm_command;<br>begin<br>&nbsp; inherited;<br>&nbsp; if msg.WParam = Ord('B') then<br>&nbsp; &nbsp; do your procedure<br>end;<br><br>添加菜单AppendMenu(m1, 0, Ord('B'), '退出应用...');
 
还有啊,如果你真的找不到Excel的句柄就问问人家用Shell怎么做吧,有可能涉及到COM了,对不起啊!<br>[:(]
 
谁要收到了也给我一份啊~先谢了!<br>dirk_c@sina.com
 
多人接受答案了。
 
我已经找到方法了,关注:<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=1356656
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
518
import
I
I
回复
0
查看
757
import
I
后退
顶部