各位,不子类化CEdit类,如何直接让Dialog上的CEdit响应OnKeyDown事件。

解决方案 »

  1.   

    BOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg) 
    {
    if( pMsg->message == WM_KEYDOWN )
    {        
    switch( pMsg->wParam )
    {
    case VK_RETURN:
    if(pMsg->hwnd == m_edit1.m_hWnd )
    {
    AfxMessageBox("enter");
    }
    return TRUE;
    }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    响应不了OnKeyDown,除非像小三那样做直接响应OnChar
      

  3.   

    我是说虽然不能响应OnKeyDown,但是可以直接响应OnChar
      

  4.   

    可以自己写个CMyEdit类,从CEdit继承,然后使用之。
      

  5.   

    其实有3种方法做:
    1、可以自己写个CMyEdit类(继承于CEdit),在类中写好响应事件OnKeyDown
    2、用PreTranslateMessage拦截消息。
    3、可以自己写个CMyEdit类(继承于CEdit),再把类中的事件OnKeyDown映射出来,再在控件中好像标准消息一样使用(这个最好用)