《windows 程序设计》中所讲的:
当按钮被按下时,会产生 WM_COMMAND 消息;
当菜单项或者菜单项所对应的快捷键被按下时,也会产生 WM_COMMAND 消息。可是我用SPY++查了一下,除了“记事本”的菜单项产生 WM_COMMAND 消息以外,大部分程序的菜单项都不产生 WM_COMMAND 消息,而且好像所有的按钮都不产生WM_COMMAND消息。这是为什么啊?是不是控件的机制已经改变了?请大家给我讲讲吧!
当按钮被按下时,会产生 WM_COMMAND 消息;
当菜单项或者菜单项所对应的快捷键被按下时,也会产生 WM_COMMAND 消息。可是我用SPY++查了一下,除了“记事本”的菜单项产生 WM_COMMAND 消息以外,大部分程序的菜单项都不产生 WM_COMMAND 消息,而且好像所有的按钮都不产生WM_COMMAND消息。这是为什么啊?是不是控件的机制已经改变了?请大家给我讲讲吧!
解决方案 »
- MFC创建的程序如何创建工程文件?
- 从链表中删除对应的客户端的线程信息
- 为什么总是LNK2005错误,不管加了 #pragma once 还是 #ifndef __xxxxx__ 还是会说重复定义了,不知为什么!
- 如何用VC实现一个VB样式的对象属性列表框?
- 求助:怎么实现动态改变文本框内背景及文字的颜色
- 如何编写用鼠标移动按钮?
- clistctr中,如何捕获由键盘所产生的scroll事件??没多少分了,希望不吝赐教!
- 如何修改文件名,而不改变文件内容?
- 高分请求FTP服务器源代码
- 请问:SQL转DBF用什么方法最简单方便?
- ListCtrl中第二列怎么添加图标,好象设置一个扩展样式可以实现,但我都试过了,不行呀
- 请大家指点指点小弟啊~~~
至于标准的按钮和菜单,一般都是通过WM_COMMAND来传送命令的,而且在程序设计的时候也是通过处理WM_COMMAND来完成处理命令事件的。
不妨把你如何使用Spy++的过程贴出来,让大家帮你分析一下。
switch(msg.message) //具体忘了,看看就知道
{
case WM_COMMAND:
return TRUE;
}如果是其他进程,用hook注入
::SetWindowsHookEx(WH_MSGFILTER, lpfn, g_hModule, dwThreadID)
lpfn是你自己的实现函数,里面和PreTranslateMessage一样