我已经建立了一个combo box 控件 
但是不知道怎么处理combo box 控件产生的消息我发现在点开下拉列表后 会不断的收到 LOWORD (wParam)=IDC_COMBO1  的消息
就是想问 怎么处理消息
点开下拉列表 和选中选项 接受的消息应该不一样吧
怎么分开处理?

解决方案 »

  1.   

    你想处理什么消息?
    ON_CBN_DBLCLK 鼠标双击
    ON_CBN_DROPDOWN 列表框被弹出
    ON_CBN_KILLFOCUS / ON_CBN_SETFOCUS 在输入框失去/得到输入焦点时产生
    ON_CBN_SELCHANGE 列表框中选择的行发生改变
    ON_CBN_EDITUPDATE 输入框中内容被更新
      

  2.   

    点开下拉列表:CBN_DROPDOWN
    选中选项:CBN_SELENDOKXXXCombo.h
    class XXXCombo : public CComboBox
    {
    ......
    public:
    afx_msg BOOL OnCbnSelendok();
    afx_msg BOOL OnCbnDropdown();
    };XXXCombo.cpp
    BEGIN_MESSAGE_MAP(XXXCombo, CCxComboBox)
    ON_CONTROL_REFLECT_EX(CBN_SELENDOK, &XXXCombo::OnCbnSelendok)
    ON_CONTROL_REFLECT_EX(CBN_DROPDOWN, &XXXCombo::OnCbnDropdown)
    END_MESSAGE_MAP()BOOL XXXCombo::OnCbnSelendok()
    {
    // TODO: Add your control notification handler code here
    //将选中的层设为当前层
    int iIndex = GetCurSel(); return TRUE;
    }BOOL XXXCombo::OnCbnDropdown()
    {
    // TODO: 在此添加控件通知处理程序代码
    return FALSE;
    }
      

  3.   

    还有 是不是 用switch(HIWORD(wParam))
    来拦截消息?