聊天软件,输入内容的是一个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"));
}
)
...
}