关于清单方块类别的 WM_COMMAND消息
时间:2011-12-22
来源:互联网
今天发现一个奇怪的问题,创建了两个listbox类控件,点击其中一个会产生两个WM_COMMAND消息。
只创建一个listbox类控件时,第一次点击也会产生两个WM_COMMAND消息。如果加入SetFocus的话就正常(一个listbox类控件)
代码如下,无关代码都去掉了:
C/C++ code
实在想不出什么原因,望高手指点一二
只创建一个listbox类控件时,第一次点击也会产生两个WM_COMMAND消息。如果加入SetFocus的话就正常(一个listbox类控件)
代码如下,无关代码都去掉了:
C/C++ code
case WM_CREATE: hInstance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE); cxChar=LOWORD(GetDialogBaseUnits()); cyChar=HIWORD(GetDialogBaseUnits()); hwndYear=CreateWindow(TEXT("listbox"),NULL, WS_CHILD|WS_VISIBLE|LBS_STANDARD, cxChar,cyChar*3, cxChar*8, cyChar*2, hwnd,(HMENU)ID_YEAR, hInstance, NULL); hwndMonth=CreateWindow(TEXT("listbox"),NULL, WS_CHILD|WS_VISIBLE|LBS_STANDARD|LBS_SORT, cxChar,cyChar*10, cxChar*8+GetSystemMetrics(SM_CXVSCROLL), cyChar*2, hwnd,(HMENU)ID_MONTH, hInstance, NULL); return 0; case WM_COMMAND: ++count; return 0;
实在想不出什么原因,望高手指点一二
作者: selooloo 发布时间: 2011-12-22
从MSDN中查询的一些通知或消息有一些是在WM_COMMAND的附属参数中的,例如BN_CLICKED通知,它触发WM_COMMAND消息,wParam的high-order字节中。因此我猜测WM_COMMAND是一些消息的集合,你在点击的时候触发了多个使用WM_COMMAND作为消息载体的通知或事件。你将截获的两次WM_COMMAND;
针对你的操作,我特意创建了一个ListBox和一个Edit,将Edit设置为默认焦点,点击LilstBox的时候触发了WM_COMMAND消息两次;
两个控件的定义如下
C/C++ code
我截获这两次消息
C/C++ code
请看debug输出结果是
512,1004,593732111
4,1003,198386111
很明显,触发的两次WM_COMMAND消息分别是来自控件ID为1004和1003的两个控件;也就说明在焦点切换的时候Edit和Listbox分别触发了WM_COMMAND消息。
针对你的操作,我特意创建了一个ListBox和一个Edit,将Edit设置为默认焦点,点击LilstBox的时候触发了WM_COMMAND消息两次;
两个控件的定义如下
C/C++ code
#define IDC_LIST1 1003 #define IDC_EDIT1 1004
我截获这两次消息
C/C++ code
if (uMsg==WM_COMMAND) { TRACE("\r\n%d,%d,%d",HIWORD(wParam),LOWORD(wParam),lParam); }
请看debug输出结果是
512,1004,593732111
4,1003,198386111
很明显,触发的两次WM_COMMAND消息分别是来自控件ID为1004和1003的两个控件;也就说明在焦点切换的时候Edit和Listbox分别触发了WM_COMMAND消息。
作者: chayedanwc 发布时间: 2011-12-24
一次 是killFocus
一次 是 Onclick
一次 是 Onclick
作者: shen_wei 发布时间: 2011-12-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28