在CEdit的控件中没有OnKeyPress之类的事件。
怎么办? thanks!

解决方案 »

  1.   

    一般是重载消息 wm_keydown但是cedit的消息控制比较特殊,可能需要重载wm_notify 消息
      

  2.   

    PreTranslateMessage(MSG* pMsg) 
    {
    if (pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN) ....
    }
      

  3.   

    如果是在一个对话框中,你可以添加一个按钮设置为默认并且不可见,这样,不论你在那个编辑框中按回车,都会产生这个按钮的command消息,可以在这里处理。
      

  4.   

    PreTranslateMessage(MSG* pMsg) 
    {
    if (pMsg->message==WM_KEYDOWN && pMsg-wParam==VK_RETURN)
                  xxx.SetFocus();
    }
      

  5.   

    先确定几个编辑框的tab order,然后检测到return被按下时,用代码发送tab
      

  6.   


     PreTranslateMessage(MSG* pMsg) 
    {
    if (pMsg->message==WM_KEYDOWN && pMsg-wParam==VK_RETURN)
                  pMsg->wParam = VK_TAB;
    }你的编辑框要有连续的焦点顺序,用Layout  --> Tab order设置好(Ctrl + d)