首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于清单方块(listbox)类别的 WM_COMMAND消息解决思路

2012-03-30 
关于清单方块(listbox)类别的 WM_COMMAND消息今天发现一个奇怪的问题,创建了两个listbox类控件,点击其中一

关于清单方块(listbox)类别的 WM_COMMAND消息
今天发现一个奇怪的问题,创建了两个listbox类控件,点击其中一个会产生两个WM_COMMAND消息。

只创建一个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;


实在想不出什么原因,望高手指点一二

[解决办法]
不奇怪啊,一个获得焦点,另一个就失去焦点,两者都是WM_COMMAND消息

C/C++ code
    case WM_COMMAND:        {            static int count;            ++count;            if(LBN_KILLFOCUS==HIWORD(wParam) )                ;//            else if(LBN_SETFOCUS==HIWORD(wParam) )                ;//        }        break;
[解决办法]
探讨为什么创建一个listbox时,第一次点击也产生两个WM_COMMAND消息呢

[解决办法]
探讨焦点变化会产生WM_COMMAND消息吗?

热点排行