我有一个模型对话框。我重写了OnCancel函数,以通过按ESC按钮停止意外退出。但这引起了新的问题。我无法使用关闭(x)按钮关闭该应用程序。我的功能实现是:
void MyDlg::OnCancel()
{
}
最佳答案
关闭对话框可以将其取消。由于您已在OnCancel处理程序中禁用关闭,因此将不会发生任何事情。
要仅禁用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);
}