MFC dlg窗口按回车(Enter)键和ESC键会退出解决方法

按回车(Enter)键和ESC键会退出解决方法

但是这种退出方式不会调用OnClose函数

所以对于我在OnClose函数里面写的文件保存的代码造成了影响--文件不保存了.

解决方法,重写dlg类的PreTranslateMessage()方法

第一步:添加虚方法

第二步.选择PreTranslateMessage()方法,重写

代码如下:

//屏蔽ESC和Enter键
BOOL dlg类名::PreTranslateMessage(MSG* pMsg)
{
    // TODO: 在此添加专用代码和/或调用基类
    if(pMsg->message == WM_KEYDOWN)
    {
        switch(pMsg->wParam)
        {
        case VK_RETURN:
            return TRUE;
        case VK_ESCAPE:
            return TRUE;
        }
    }
    return CDialog::PreTranslateMessage(pMsg);
} 

参考自:

http://www.cnblogs.com/chenchenluo/archive/2012/08/03/2620991.html

原文地址:https://www.cnblogs.com/jun14/p/2774980.html