在新建的MFC的对话框中,按下回车时,系统会调用”默认“事件处理函数,也就是OnOK(),倘若你自己的CFormView子类或者CDialog子类没有重写OnOK()函数,则会调用父类的OnOK,其结果是关闭界面。要屏蔽Enter键退出的功能,只需要将在CDialog中重写ONOK()函数即可。而要实现默认为“确定”功能,下面两种方法供参考:
1.采用ClassWizard进行实现
在类视图里面选择你要实现的类,右键属性,在属性里面找到函数PreTranslateMessage,然后添加PreranslateMessage的消息函数,在PreTranslateMessage的消息函数中添加你要实现“确定”功能的代码。
2.手动的添加PreTranslateMessage函数
首先在你需要的对话框实现确定功能的的头文件中添加PreTranslateMessage的函数声明:
virtual BOOLPreTranslateMessage(MSG* pMsg);
然后在该对话框对应的*.CPP文件中添加PreTranslateMessage函数的实现代码即可。
例如:
BOOL CSetIp::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
{
intnControlID = GetFocus()->GetDlgCtrlID();//获取所有控件的ID
if(IDC_IPADDRESS1 == nControlID)
{
//IDC_IPADDRESS1是控件的ID
OnBnClickedEnter();//你要使用的Enter键所代替的函数
}
}
return CDialog::PreTranslateMessage(pMsg);
}