VS2010 MFC中屏蔽ESC和ENTER键关闭对话框的方法

4 篇文章 0 订阅

VS2010 MFC中屏蔽ESC和ENTER键关闭对 话框的方法

 

重载PreTranslateMessage()函数,在此函数里捕捉ESC和ENTER键按下时的消息。
1.完全屏蔽ESC键与ENTER回车键
BOOL CLXTDlg::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)    //回车
        return TRUE; 
    if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE)    //ESC 
        return TRUE; 
    return CDialogEx::PreTranslateMessage(pMsg);
}

由于是完全屏蔽了,所以按钮上按ENTER键也是没有反应的。

回车键ENTER处理的是CDilog::OnOk()函数,因此,重载以下函数,并在PreTranslateMessage()函数中只屏蔽ESC就可以在按钮上使用ENTER键了。

void CLXTDlg::OnOK() 
{
// TODO: Add extra validation here

//CDialogEx::OnOK();  //注意此句注释掉
}

 

 

2.完全屏蔽ESC键,捕捉ENTER回车键
BOOL CLXTDlg::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN )     
    {
        if(GetFocus()->GetDlgCtrlID()==IDC_LXT)//按下回车,如果当前焦点是在自己期望的控件上
        {                                           
            CLxtDlg::OnBnClickedBtnSend();//添加自己的处理代码
        }
         return TRUE;
    }
    if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)     
        return TRUE;  
    return CDialogEx::PreTranslateMessage(pMsg);
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值