关于清单方块类别的 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版激活秘钥/序列号/激活码推荐 附激活工具 office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具阅读:74 
-   如何安装mysql8.0 如何安装mysql8.0阅读:31 
-   Word快速设置标题样式步骤详解 Word快速设置标题样式步骤详解阅读:28 
-   20+道必知必会的Vue面试题(附答案解析) 20+道必知必会的Vue面试题(附答案解析)阅读:37 
-   HTML如何制作表单 HTML如何制作表单阅读:22 
-   百词斩可以改天数吗?当然可以,4个步骤轻松修改天数! 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!阅读:31 
-   ET文件格式和XLS格式文件之间如何转化? ET文件格式和XLS格式文件之间如何转化?阅读:24 
-   react和vue的区别及优缺点是什么 react和vue的区别及优缺点是什么阅读:121 
-   支付宝人脸识别如何关闭? 支付宝人脸识别如何关闭?阅读:21 
-   腾讯微云怎么修改照片或视频备份路径? 腾讯微云怎么修改照片或视频备份路径?阅读:28 















