MFC屏蔽按键ESC、ENTER、Alt+F4
阅读原文时间:2023年07月08日阅读:1

1、重写

  重写下面的函数

virtual BOOL PreTranslateMessage(MSG* pMsg);

2、函数体

BOOL Cfile_trans_codeDlg::PreTranslateMessage(MSG* pMsg)
{
if (WM_KEYDOWN == pMsg->message )
{
switch (pMsg->wParam)
{
case VK_ESCAPE: //Esc按键事件
return TRUE;

    case VK\_RETURN: //Enter按键事件  
        return TRUE;

    default:  
        break;  
    }  
}

if ( (WM\_SYSKEYDOWN == pMsg->message) // WM\_SYSKEYDOWN  表示ALT键按下  
    &&  
    (VK\_F4 == pMsg->wParam) )  
{  
    return TRUE;  
}

return CDialogEx::PreTranslateMessage(pMsg);  

}

3、注意:

  如果 窗口继承 CDialog, 则上面的函数返回值应为:

return CDialog::PreTranslateMessage(pMsg);

  若继承CDiaologEX,则返回值应为:

return CDialogEx::PreTranslateMessage(pMsg);

  这样,按下enter 等屏蔽的按键,窗体就不会关闭了

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章