方法一:

窗体头文件中加入:

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

在CPP中加入:

 BOOL CColorDlgDlg::PreTranslateMessage(MSG* pMsg)
{
//屏蔽ESC关闭窗体/
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE ) return TRUE;
//屏蔽回车关闭窗体,但会导致回车在窗体上失效.
//if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN && pMsg->wParam) return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
void CColorDlgDlg::OnOK()
{
//CDialogEx::OnOK();
}

方法二:

窗体头文件中加入:

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;

VC MFC 屏蔽ESC和ENTER键关闭对话框的更多相关文章

  1. MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法

    http://blog.csdn.net/xgx198831/article/details/6713651 MFC对话框程序  屏蔽ESC和ENTER键关闭对话框的方法 或许还有其它更好的办法,但下 ...

  2. MFC 屏蔽esc跟enter键

    BOOL CMenuOperate::PreTranslateMessage(MSG* pMsg) { if(pMsg->message == WM_KEYDOWN && pMs ...

  3. MFC非模态对话框中屏蔽ESC键

    个人的编程经验认为:对于非模态对话框,按下ESC键和点击红叉都会响应OnCancel()函数,而不会去响应OnClose()函数. 我们都知道,如果想屏蔽Enter键,只须重写OnOK()函数即可(重 ...

  4. 转:MFC中屏蔽ESC和回车关闭对话框

    解决方法是在 CDialog::PreTranslateMessage() 的重载函数中将ESC和回车按键的消息处理掉. 直接上代码: CResultCollectorDlg::PreTranslat ...

  5. VC++ MFC SDI/MDI Ribbon程序的停靠窗格被关闭后如何再次显示

    VC++ 创建基于MFC的SDI应用程序,Visual Studio风格的主界面如下图所示,在该主界面上的视图菜单下包含有队对各个可停靠窗格显示或隐藏的控制菜单项.而基于Ribbon风格的应用程序,所 ...

  6. VC++ MFC子对话框建立与关闭

    主窗体 void CMoshiwindowDlg::OnButton1() { // TODO: Add your control notification handler code here CDi ...

  7. js防止回车(enter)键提交表单及javascript中event.keycode

      如何防止回车(enter)键提交表单,其实很简单,就一句话.onkeydown="if(event.keyCode==13)return false;"把这句写在from标签里 ...

  8. enter键触发的函数

    enter键触发的函数示例: <input type="text" onkeydown="fun();"> function fun() { if( ...

  9. 联想 ThinkPad 笔记本 Fn 键 关闭与启用方法

    联想 ThinkPad 笔记本 Fn 键 关闭与启用方法 [最快捷的方式] 按 Fn + Esc 键,进行切换启用或者关闭 Fn 功能键 So easy!!! ^_^

随机推荐

  1. iOS_根据文字字数动态确定Label宽高

    iOS7中用以下方法 CGSize 替代过时的iOS6中的- (CGSize)sizeWithFont:(UIFont *)font 方法 // iOS7_API_根据文字 字数动态确定Label宽高 ...

  2. HDU 1423 Greatest Common Increasing Subsequence(最长公共上升LCIS)

    HDU 1423 Greatest Common Increasing Subsequence(最长公共上升LCIS) http://acm.hdu.edu.cn/showproblem.php?pi ...

  3. SQL Server 备份维护计划

    1. 创建维护计划:SSMS -> 管理 -> 维护计划 -> 新建维护计划 2. 添加子计划(备份计划) a) 每30分钟:事务日志备份  每天:差异备份  每周:完整备份 b) ...

  4. 发布前,Bat Script备份服务器的Website

    由于远程访问服务器,操作滞后验证,备份不方便.我试了两种方式,VBScript和利用7zip的脚本自动备份网站.下面有简单的说明供参考. 1. VBScript, 使用VB脚本打包,不稳定,在服务器上 ...

  5. 第9课_3_db库安装

    四 安装listener监听 使用oracle用户,在rac1和rac2上都可以起netca 1.打开网络配置界面,选择"Cluster configuration"集群配置方案, ...

  6. [转]Java虚拟机类加载机制浅谈

    Java语言是一种编译后再经过解释器执行的过程, 解释器主要就是如何处理解释Class文件的二进制字节流.JVM主要包含三大核心部分:运行时数据区,类加载器和执行引擎. 虚拟机将描述类的数据从Clas ...

  7. 用C++编写程序,输出两个字符串的最大公共子字符串

      #include<iostream> #include<string> using namespace std; int main() { string s_l,s_sh; ...

  8. 微软TTS示例

    #include "sphelper.h" #include "sapi.h" #pragma comment(lib, "sapi.lib" ...

  9. jsp获取枚举的值

    Struts2的Action传回页面一个list,页面迭代这个list,获取下拉框的值,获取过来是枚举类型. 在jsp页面获取枚举的常量值和枚举的值的例子如下: jsp页面: <td >状 ...

  10. css复合属性的写法

    # 复合属性也称为 "shortcut" property (快捷属性),它作用是为了简化代码,提高页面运行的效率. # 下面的内容会介绍 2 个比较常用的复合属性 "f ...