我有一個模型對話框。我通過按下ESC按鈕忽略OnCancel函數來停止意外退出。但是這造成了一個新問題。我無法使用關閉(x)按鈕關閉應用程序。我實現的功能是:覆蓋MFC/Visual C++中的OnCancel按鈕
void MyDlg::OnCancel()
{
}
我有一個模型對話框。我通過按下ESC按鈕忽略OnCancel函數來停止意外退出。但是這造成了一個新問題。我無法使用關閉(x)按鈕關閉應用程序。我實現的功能是:覆蓋MFC/Visual C++中的OnCancel按鈕
void MyDlg::OnCancel()
{
}
關閉對話框可以有效地取消它。由於您在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);
}
OnCancel通過按下X按鈕或按逃避所謂的,而且也沒有辦法在函數中告訴。您可以添加一個消息對話框來詢問用戶是否確定要退出,或者專門查看陷印逃生按鍵。 – 2012-03-23 11:17:24
或取消按鈕。 – 2012-03-23 11:26:23