求API函数,难!! (300分)

to ysai:<br>请您注意,说父窗体的说法是非常不准确的!<br>因为菜单实际上是由: CreateMenu和CreatePopupMenu 最初建立的,而他们都不需要传入窗口句柄。<br>那么,老式的窗口主菜单是如何关联的呢?是用SetMenu来实现TMenu成为Window的主窗体。<br>这可以在TCustomerForm中得到验证。只有用SetMenu后,才能用GetMenu来获得对应的菜单句柄!<br>而这时候,菜单仍然不是“属于”这个窗体的,程序的其他任何地方都可以使用这个菜单(利用其句柄)。<br>而我们现在多是用TToolButton来调用Menu的API来实现菜单,而TToolBtn是TGraphicControl,<br>它并不使用SetMenu来关联菜单。因此这时GetMenu是无法达到你的目的的。<br>实际上,要获得一个菜单的句柄是非常困难的,当然在建立菜单的时候例外。[:)]
 
楼上的注意我的要求,我是要取得菜单的句柄,或工具栏按钮的句柄,并没有说根据工具栏按<br>钮取得其弹出菜单的句柄<br><br>起码知道一点,可以动态根据点取得菜单(MenuItemFromPoint),但是,如果它没有弹出,我就<br>取不到了,我想做到即使不可见也能取得句柄<br><br>另外,WindowFromPoint根本找不到工具栏按钮的句柄,我都怀疑它有没有句柄了<br><br>注意,这两个都是取句柄,但两者间没有关联
 
to ysai:<br>MenuItemFromPoint 首先要知道HMenu请问你如何获得?<br>而且它只是获得一个序号,不是菜单句柄。[:)]<br><br>我已经指出TToolBtn是TGraphicControl,也就是说工具栏的按钮是没有窗口句柄的。<br>详细一点请看:http://www.delphibbs.com/delphibbs/dispq.asp?lid=1654776<br>所以是不可行的。[:)]<br><br>您的想法是好的,但是您似乎对一些相关的概念不太清晰,<br>您可以去看一下相关的Windows SDK和VCL源代码。<br>&nbsp;
 
我想知道WINDOWS是怎么控制工具栏按钮的!<br><br>即我想达到控制别人编写的程序中的工具栏按钮,菜单等等<br><br>时间不够呀,我工作太忙,想看,但~~~~实在是没时间看,那可不是个小工程
 
实际上,控制一般的工具栏按钮是不可能的,<br>但是幸好可以利用com接口来操作Office系列软件和IE,<br>包括他们的菜单,工具栏目 等等的一切。 [:)]<br>很惭愧,我对这方面不太熟悉,[:(]<br>好像 小雨哥 兄对这个倒是很精熟。[:)] (是不是啊?)<br>还有一些大富翁,我不太清楚。 [:D]
 
不可能? WINDOWS是怎么做到的?或者没有提供这样的接口?<br>头大了~~~~不会这么惨吧,我不甘心呀~!<br><br>并不是所有的程序都提供了接口,所以,不好玩......
 
关于IE的接口都属于外壳程序,请查阅<br>MSDN/用户界面的设计与开发/windows外壳程序和公用控件/<br>SDK文档/Windows Shell
 
可以去http://www.chinaithero.com/找API函数的注解
 
没搞明白!学习!
 
我试了一下,用 MsgFilter 钩子可以获得IE窗口,桌面弹出式菜单项目的句柄,<br>并可以由此取出他们的信息。但是Word不行,用“放大镜”工具发现它的外边是全黑的,<br>而普通的菜单不是全黑的,说明这种菜单比较特殊,也许根本就不是菜单。<br>看看对您有什么用没有。
 
你要知道ToolBarWindow32上的Button不是窗口,没有窗口句柄,它只是一个个的区域。
 
通过发消息可以枚举ToolBar的每个ToolButton,谁做到过?
 
关注<br>
 
菜单未必一定是菜单,行为像菜单就行。<br>Word里的菜单,我觉得未必就不是普通的菜单。<br>不过在OLE Container中,InPlace激活时,会将Word的菜单项融合到MainForm中,有句柄的<br>但也不是通常意义上的Menu,<br><br>而且WoreXP好像是用VS7写的,至少其运行库有好些是Version7的,<br>恐怕...<br>
 
又没有答案~~
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
832
DelphiTeacher的专栏
D
D
回复
0
查看
877
DelphiTeacher的专栏
D
顶部