如何在Dialog上响应ComboBox的CBN_SELCHANGE事件类似
if (pMsg->hwnd == hWnd && pMsg->message == CBN_SELCHANGE) 
{}

解决方案 »

  1.   

    我不要OnXXX的那种函数,因为,有很多的ComboBox,我想根据ID响应。
      

  2.   

    自己实现virtual BOOL PreTranslateMessage(MSG* pMsg);这个虚函数
      

  3.   

    实现了,但是,if (pMsg->hwnd == hWnd && pMsg->message == CBN_SELCHANGE) 
    {
    //无法执行到这里
    }
      

  4.   

    这个消息比较特别
    是收到WM_COMMAND消息的,应该是控件SendMessage过去的
    消息钩子捕获不到
      

  5.   

    应该这样
    if(pMsg->message == WM_COMMAND)
    {
        if(HIWORD(pMsg->lParam) == CBN_SELCHANGE)
        {
            UINT nID = LOWORD(pMsg->lParam);
            ……
        }
    }
      

  6.   

    你可以用SetWindowLong修改对话框的默认消息处理函数
    这样你就可以捕获到响应的WM_COMMAND消息,根据WPARAM和LPARAM得到是那个ComboBox的事件