Ris*_*han 2 c++ mfc visual-c++
我有一个模型对话框.我通过按ESC按钮覆盖OnCancel功能以停止意外退出.但这引起了一个新问题.我无法使用close(x)按钮关闭应用程序.我的功能实现是:
void MyDlg::OnCancel()
{
}
Run Code Online (Sandbox Code Playgroud)
关闭对话框会有效取消它.由于您在OnCancel处理程序中禁用了close,因此不会发生任何事情.
要仅禁用ESC,您需要预处理键盘消息:
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg)
{
switch ( pMsg->message )
{
case WM_KEYDOWN:
switch( pMsg->wParam )
{
case VK_ESCAPE:
case VK_CANCEL: return true;
}
break;
}
return CDialog::PreTranslateMessage(pMsg);
}
Run Code Online (Sandbox Code Playgroud)