键盘消息是WM_KEYUP、WM_KEYDOWN.
然后我以为文本框字增加减少是键盘消息,后来才发现原来是弄错了,应该是WM_COMMAND.
百度了一下该消息:
WM_COMMAND消息
当用户点击菜单、按钮、下拉列表框等控件时候,会触发WM_COMMAND
wParam的高低位可区分该消息
Message Source | wParam (high word) | wParam (low word) | lParam |
---|---|---|---|
Menu | 0 | Menu identifier (IDM_*) | 0 |
Accelerator | 1 | Accelerator identifier (IDM_*) | 0 |
Control | Control-defined notification code | Control identifier | Handle to the control window |
菜单--不说了
Accelerator
消息被消息循环监控,如果发现这个键盘消息是Accelerator消息的话,就会把键盘消息转化为WM_COMMAND、WM_SYSCOMMAND消息发给相应的窗口。
对于WM_SYSCOMMAND 中如果是系统菜单的消息,都必须要交给DefWindowProc 来处理,并且将返回值返回给Windows ,不然你会发现不能拖动窗体、改变大小、最大最小化操作等。因为你如果不交给DefWindowProc 处理,相当于屏蔽了SC_RESTORE、SC_MOVE、SC_MAXIMIZE、SC_MINIMIZE、SC_CLOSE 等等操作了。这些命令都是通过Windows 投递WM_SYSCOMMAND 消息,在DefWindowProc 中进行处理的。
列表框: LBN_*****
组合框: CBN_****
Tab框: TBN_****
按钮: BN_*****
Edit : EN_*****
本文为摘录及整理,并非完全原创。如有错误,欢迎指正。