取消MFC对话框ESC和回车键关闭对话框功能

一般都两种方法,一种是回车键之类的响应消息;另一种就是重写OnOK和OnCancel函数,我喜欢用后一种方法,实现如下:

1. 在头文件声明

public:
    virtual void OnOK();
    virtual void OnCancel();

2.在原文件实现:

void CXX::OnOK()
{
    CWnd* pWnd = GetFocus();
    if (GetDlgItem(IDOK) == pWnd)
    {
        CDialog::OnOK();
        return;
    }
}
void CXX::OnCancel()
{
    CWnd* pWnd = GetFocus();
    if (GetDlgItem(IDCANCEL) == pWnd)
    {
        CDialog::OnCancel();
        return;
    }
}

3.此时回车键还是能关闭,因为主页的确定按钮功能在,删除或者禁用即可;

4.这时候点对话框上的关闭按钮都不能关闭对话框了,需要添加一个OnClose消息函数,添加方法如下:

资源视图 打开对话框界面 右键属性 点击消息按钮  给WM_CLOSE添加消息响应函数,OnClose,实现如下:

void CpatientInfoRecordDlg::OnClose()
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    CDialog::OnOK();
    CDialogEx::OnClose();
}

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值