分享

MFC对话框程序屏蔽ESC和ENTER键退出

 水中麒麟 2013-09-27

或许还有其它更好的办法,但下面这个肯定有用,主要就是重载PreTranslateMessage()函数,在这个函数里捕捉ESC和ENTER键按下时的消息,然后什么都不做,或是添加代码完成你自己想要实现的功能。
1.完全屏蔽ESC键与ENTER回车键
BOOL CQQ_chart_serverDlg::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)    
        return TRUE; 
    if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE)    
        return TRUE; 
    return CDialog::PreTranslateMessage(pMsg);
}

2.完全屏蔽ESC键,捕捉ENTER回车键
BOOL CQQ_chart_clientDlg::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN )     
    {
        if(GetFocus()->GetDlgCtrlID()==IDC_MSG_SEND)//按下回车,如果当前焦点是在自己期望的控件上
                                                  
            CQQ_chart_clientDlg::OnBnClickedBtnSend();//添加自己的处理代码
        }
         return TRUE;
    }
    if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)     
        return TRUE;  
    return CDialog::PreTranslateMessage(pMsg);
}
该代码在VS2010中的MFC程序测试通过,完全可以实现,红色的代码是可以根据自己的实际情况修改的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多