• VC MFC 屏蔽ESC和ENTER键关闭对话框


    参考资料:https://www.cnblogs.com/yangjig/p/3913751.html

    方法一:

    窗体头文件中加入:

    1 protected:
    2     virtual BOOL PreTranslateMessage(MSG* pMsg);  // PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的
    3 public:
    4     virtual void OnOK();

    在CPP中加入:

    复制代码
     1 BOOL CColorDlgDlg::PreTranslateMessage(MSG* pMsg)
     2 {
     3     //屏蔽ESC关闭窗体/
     4     if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE ) return TRUE;
     5     //屏蔽回车关闭窗体,但会导致回车在窗体上失效.
     6     //if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN && pMsg->wParam) return TRUE;
     7     else
     8         return CDialog::PreTranslateMessage(pMsg);
     9 }
    10 void CColorDlgDlg::OnOK()
    11 {
    12     //CDialogEx::OnOK();
    13 }
    复制代码

    方法二:

    窗体头文件中加入:

    public:
        virtual void OnOK();
        virtual void OnCancel();
        afx_msg void OnClose(); //响应关闭事件!

    在CPP中加入:

    复制代码
    void CFirstFZDlg::OnOK()
    {
        return;
    }
    void CFirstFZDlg::OnCancel()
    {
        return;
    }
    void CFirstFZDlg::OnClose()
    {
        // TODO:  在此添加消息处理程序代码和/或调用默认值
        
        CDialogEx::OnCancel();
        //CDialogEx::OnClose();
    }
    复制代码
    MSG 结构体定义如下:
    typedef struct tagMSG { // msg
    HWND hwnd; // 窗口句柄
    UINT message; // 消息
    WPARAM wParam; // 消息附加信息,根据消息而定
    LPARAM lParam; // 消息附加信息,根据消息而定
    DWORD time; // 消息发送时间
    POINT pt; // 消息发送时指针的位置(屏幕坐标)
    } MSG;
  • 相关阅读:
    3、使用DB first创建上下文并生成数据库表
    2、新建解决方案,新建项目,配置引用
    1、Visual Studio 2019下载及安装
    7、权限管理数据库
    6、添加Common类
    四年下学期古诗
    三年级必背古诗
    用PHPCMS V9完成wap网站四步法
    Thinkphp笔记---查询方式
    ThinkPHP快捷查询
  • 原文地址:https://www.cnblogs.com/kuangke/p/10773956.html
Copyright © 2020-2023  润新知