当前位置: 代码迷 >> VC/MFC >> 如果想在Edit控件中,按Ctrl + 回车,触发一个发送动作,应该怎么处理
  详细解决方案

如果想在Edit控件中,按Ctrl + 回车,触发一个发送动作,应该怎么处理

热度:130   发布时间:2016-05-02 03:41:01.0
如果想在Edit控件中,按Ctrl + 回车,触发一个发送动作,应该怎么办?
聊天软件,输入内容的是一个Edit控件,但是我希望想发送时,就按Ctrl + 回车就行了。

怎样处理键盘消息触发这一动作呢?是不是需要“子类化”?
------解决思路----------------------
父窗口,比如对话框类添加虚函数PreTranslateMessage里过滤WM_KEYDOWN消息,判断当前message的message.hWnd == Edit的HWND
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
...
 if((pMsg->hWnd == GetDlgItem(IDC_EDIT)->GetSafeHwnd())
 && (WM_KEYDOWN == pMsg->message)
 && (GetKeyState(VK_CTRL) < 0) 
 && (GetKeyState(VK_RETURN) < 0))
 {
   AfxMessageBox(_T("Ctrl + Enter Key Down"));
 }
 )
...
}
  相关解决方案