如何处理 CEdit 控件中的 Return 键?
如何处理 CEdit
控件中的 Return 键 (VK_RETURN
)?CEdit
控件的父级是 CDialog
.
How can I handle the Return key (VK_RETURN
) in a CEdit
control? The CEdit
control is parented to a CDialog
.
推荐答案
您还可以在对话框的 PreTranslateMessage 中过滤键.如果您得到 VK_RETURN
的 WM_KEYDOWN
,请调用 GetFocus
.如果焦点在您的编辑控件上,请调用您对编辑控件中按下的返回的处理.
You could also filter for the key in your dialog's PreTranslateMessage. If you get WM_KEYDOWN
for VK_RETURN
, call GetFocus
. If focus is on your edit control, call your handling for return pressed in the edit control.
注意 if 中的子句顺序依赖于短路是有效的.
Note the order of clauses in the if relies on short-circuiting to be efficient.
BOOL CMyDialog::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN &&
pMsg->wParam == VK_RETURN &&
GetFocus() == m_EditControl)
{
// handle return pressed in edit control
return TRUE; // this doesn't need processing anymore
}
return FALSE; // all other cases still need default processing
}
相关文章