现有一个程序(下载地址:http://www.softsea.net/soft/121626.htm,需要安装一下),请问如何调用"Edit菜单下的Search and Replace命令,点击这个菜单项后会出现一个窗口,然后在这个窗口输入需要替换的字符,然后点确定。说明:
   1、我曾用API函数"ShowWindow"直接显示那个Search and replace窗口,窗口是显示出来了,但里面的输入框控件和按钮都没有加载,所以必须要点击Edit->Search and Replace菜单项,那些输入框和按钮才能显示出来.或许还有其它方法,望指点...
   2、我曾用GetMenu和GetsubMenu函数查找菜单项的句柄,但没有成功,也可能方法不对望高手能指点一下迷津,最好能给个示例源码,    谢谢!

解决方案 »

  1.   

    用spy++看看当你点菜单时,系统都发了那些消息,从中找到可能的响应消息(比如WM_COMMAND),模拟之。理论上就是这样了。
      

  2.   

    同意dongle2001(dl)另外,简单的方法是发送键盘消息,相当于键盘宏,去调用那个菜单命令。
    比如,你的程序提供一个输入窗体,两个输入框,一个源串,一个要替换成的目标串。
    通过键盘消息打开那个程序的那个菜单,延时几十毫秒等待窗体完全就绪,然后再发送键盘消息把源串和目标串都输入进去,再确定,就行了。
      

  3.   

    非常感谢dongle2001(dl)和theforever(碧海情天)的解答,但我用SPY++查不到相应的消息,甚至不能找到那个菜单项的句柄,因为我是用程序来实现,所以解答最好是用API函数来实现.
    另外“theforever(碧海情天)”能否给个源码,再者不能用固定的延时来等待窗体的完全就绪,因为受机器性能的影响,有时在固定的时间内窗体还没有显示出来,这样会造成任务执行失败。
      

  4.   

    模拟打开菜单不用找到菜单句柄的,直接向窗体发送WM_COMMAND消息就行了,具体参数可以用Spy++看看
      

  5.   

    我是刚学用API,不太会用SPY++,哪位仁兄能够帮我找一下具体需要怎样发送,发送什么消息,分我就全送了。
      

  6.   

    看到有朋友建议直接给窗体发送WM_COMMAND消息,在此说明一下,这个程序的菜单不同于普通的应用程序菜单,它的菜单是向Word的工具条一样,是可以移动的,所以上面的方法不管用