WM_KEYDOWN不行的

解决方案 »

  1.   

    子类化combo
    .h 
    CContainedWindow m_Edit;BEGIN_MSG_MAP(CYourClass)ALT_MSG_MAP(1)
    MESSAGE_HANDLER(WM_GETDLGCODE, OnGetDlgCode)
    MESSAGE_HANDLER(WM_KEYDOWN, onkeydown)
    MESSAGE_HANDLER(WM_CHAR, OnEditInputMagnification)END_MSG_MAP()
    .cpp 
    in constructor: CYourClass::CYourClass() : m_Edit(_T("EDIT"), this, 1) {}
    in OnInitDialog: m_Edit.SubclassWindow(::GetWindow(GetDlgItem(IDC_COMBO), GW_CHILD));add if you want all keys add following:LRESULT CYourClass::OnGetDlgCode(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
    {
    return DLGC_WANTALLKEYS;
    }
    and finally you can get KeyDown:LRESULT CYourClass::onkeydown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
    {
    switch (wParam)
    {
    case VK_RETURN:
    {
    ...
    }
    break;
    case VK_TAB:
    {
    ...
    }
    break;
    }bHandled = FALSE;
    return S_OK;
    }
      

  2.   

    方法一同上
    方法2 WM_FORWARDMSG