重写对话框的PreTranslateMessage函数,在里面判断是否俺了回车键,如果是的话再判断焦点是不是在编辑框里面,可以用GetFocus 这个函数判断焦点是否在那个编辑框里面:
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
if (WM_KEYFIRST <= pMsg-> message && pMsg-> message <= WM_KEYLAST)
{
if(pMsg-> wParam==VK_RETURN )
{
UpdateData(TRUE);
AfxMessageBox(m_Text);
}
}
return CDialog::PreTranslateMessage(pMsg);
}
在上面的代码中,首先将pMsg-> message所表示的消息同WM_KEYFIRST 和WM_KEYLAST比较,确定是键盘消息,然后通过消息参数pMsg-> wParam的值来判断是否是回车键(VK_RETURN,虚拟键码可以从SDK相关资料查到)。如是,则可以将已输入到编辑框中的字符读取到m_Text中,并将其显示出来。