朋友们好!需要你们的大力帮助了!!
上面其实是两个问题
(1)当点击工具栏上不同按钮的时候,通过获取什么消息的什么参数可以得到工具栏按钮的id或序号?
(2)当点击窗口菜单项的时候,需要通过获取什么消息的什么参数可以知道点击的是菜单的哪一项,并可以进一步知道父菜单?NEED YOUR BIG HELP!!! THANK YOU!
上面其实是两个问题
(1)当点击工具栏上不同按钮的时候,通过获取什么消息的什么参数可以得到工具栏按钮的id或序号?
(2)当点击窗口菜单项的时候,需要通过获取什么消息的什么参数可以知道点击的是菜单的哪一项,并可以进一步知道父菜单?NEED YOUR BIG HELP!!! THANK YOU!
解决方案 »
- CButton::SetCheck()//使用的时候参数一般是true或者false//但是msdn里并没有啊
- 如何才能知道ShellExecute执行完毕?
- 为啥我的控制台程序在运行时还能更改文件名?如何解觉?
- 谁能解释一下fopen参数中a与a+区别
- 编译请教:debug 和 release 问题!
- 高手帮忙看看,这个字符串的函数有什么问题,马上给分?
- 请问:该如何读取OE的dfx文件?它的格式是怎样的?
- CGridCtrl::SetFocusCell(int nRow, int nCol)的问题。
- 程序运行多次之后出现该内存不能为“written”
- 如何控制两个可执行程序分别执行
- 请问下这种顶层弹出的窗口怎么弄的
- 菜鸟请教各位大神!如何在MFC对话框中实现矩形的显示??
如果你所说的“工具栏”和即将要采取的判断方法,都是在你同一个程序里面实现,那么,楼上的方法可以满足你的要求。如果,“工具栏”和你的代码不是在一个程序里,比如,你想通过自己的程序监控用户点击的其他程序里面的工具栏的哪个按钮,那么处理逻辑就稍微复杂一些,思路:
获取原工具栏的整体区域和各个按钮的位置(TBButton 的 Rect),涉及到为进程分配内存(可参考 http://www.codeproject.com/Articles/10642/CProcessData-A-template-class-to-ease-up-SendMessage)
Hook 原工具栏的窗口消息,google HookWnd,当点击时,循环判断 CRect.PtInRect,当为真时,对应的 TButton 结构体即是想要的,里面就包含你要的 id
只能通过COMMAND消息来入手
而且工具栏和菜单往往都是一个消息
2、afx_msg void OnClicked(); 判断 CRect.PtInRect