回车键自动关闭,究其原因:
默认的ok键和cancel键是默认的button。当你回车就会触发他们,然后程序就退出了。
当然你可以试试重写这两个虚函数。我的解决办法比较暴力,如有需要,请尽情参考。
注意:编辑框最好设置为多行显示,并且有竖直滚动条,当然设置为可接收return。
拦截的消息是WM_KEYDOWN笔者就手误弄成了NM_KEYDOWN 调试了半天。。。。
1 重写对话框的PreTranslateMessage函数。
里面加上:
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_KEYDOWN&& pMsg->wParam == VK_ESCAPE)
{
int retVal = MessageBoxA(m_hWnd, "Do you Want to Quit App ?", "Tips", MB_OKCANCEL);
if (retVal == IDOK)
{
exit(0);
}
return TRUE;
}
if (pMsg->message == WM_KEYDOWN&& pMsg->wParam == VK_RETURN)
{
m_hwndEdit.PostMessage(WM_CHAR, pMsg->wParam, pMsg->lParam);
return TRUE;
}