朋友们好!需要你们的大力帮助了!!
上面其实是两个问题
(1)当点击工具栏上不同按钮的时候,通过获取什么消息的什么参数可以得到工具栏按钮的id或序号?
(2)当点击窗口菜单项的时候,需要通过获取什么消息的什么参数可以知道点击的是菜单的哪一项,并可以进一步知道父菜单?NEED YOUR BIG HELP!!! THANK YOU!

解决方案 »

  1.   

    ON_UPDATE_COMMAND_UI消息里可以得到你想要的东西
      

  2.   

    问题1:
    如果你所说的“工具栏”和即将要采取的判断方法,都是在你同一个程序里面实现,那么,楼上的方法可以满足你的要求。如果,“工具栏”和你的代码不是在一个程序里,比如,你想通过自己的程序监控用户点击的其他程序里面的工具栏的哪个按钮,那么处理逻辑就稍微复杂一些,思路:
    获取原工具栏的整体区域和各个按钮的位置(TBButton 的 Rect),涉及到为进程分配内存(可参考 http://www.codeproject.com/Articles/10642/CProcessData-A-template-class-to-ease-up-SendMessage)
    Hook 原工具栏的窗口消息,google HookWnd,当点击时,循环判断 CRect.PtInRect,当为真时,对应的 TButton 结构体即是想要的,里面就包含你要的 id
      

  3.   

    谢谢各位! 我所说的是第二种情况,是判断是否点击了别的程序的工具条或菜单,知道是hook哪个消息么?谢谢。菜单消息捕捉有什么好方法么?谢谢
      

  4.   

    那可不好办
    只能通过COMMAND消息来入手
    而且工具栏和菜单往往都是一个消息
      

  5.   

    1、google HookWnd
    2、afx_msg void OnClicked(); 判断 CRect.PtInRect