请问如何捕捉CEDIT的KEYDOWN事件,好象没有相应的WM_KEYDOWN消息,是不是要通过CMAINFRAME的WM_KEYDOWN来捕捉,然后再判断鼠标焦点?

解决方案 »

  1.   

    可以自己重CEdit继承一个类,重载KeyDown
      

  2.   

    也可以重载对话框的PreTranslateMessage消息
      

  3.   

    BOOL CDialogBarAttrib::PreTranslateMessage(MSG* pMsg) 
    {
    if( pMsg->message == WM_KEYDOWN )
             {
              ///
             }
    return CDialogBar::PreTranslateMessage(pMsg);
    }
      

  4.   

    重载PreTranslateMessag,能过捕获OnKeyDown消息来处理。
      

  5.   

    BOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg) 
    {
    if( pMsg->message == WM_KEYDOWN )

    if(pMsg->hwnd == GetDlgItem(IDC_EDIT1)->m_hWnd)
    {
    switch( pMsg->wParam )
    {
    case VK_SPACE:
    AfxMessageBox("输入了空格!");
    }
    }
    return TRUE;
    } return CDialog::PreTranslateMessage(pMsg);
    }