virtual BOOL PreTranslateMessage(MSG* pMsg)
{
return CWindow::IsDialogMessage(pMsg);
}
改成:
virtual BOOL PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE) return TRUE;
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) return TRUE;
else
return CWindow::IsDialogMessage(pMsg);
}
---------------------------------------------
MFC:
BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE) return TRUE;
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN) return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
--------------------
在一般情况下编写的对话框程序,用户在运行的时候,如果不注意按下了ENTER或者ESC键,程序就会立刻退出,之所以会这样,是因为按下Enter键时,Windows就会自动去找输入焦点落在了哪一个按钮上,当获得焦点的按钮的四周将被点线矩形包围。如果所有按钮都没有获得输入焦点,Windows 就会自动去寻找程序或资源所指定的默认按钮(默认按钮边框较粗)。如果对话框没有默认按钮,那么即使对话框中没有OK按钮,OnOK函数也会自动被调用,对于一个普通的对话框程序来说,OnOK函数的调用,以为着程序会立刻退出。为了使Enter键无效,最简单的办法就是将CExDlg的OnOK函数写成空函数,然后针对OK按钮写一个新的函数来响应。ESC键的原理也是如此,它是默认和OnCancel函数映射在一起的。对于ESC键,需要自己重载 CDialog类的PreTranslateMessage函数,当发现是ESC键的时候,过滤掉这个消息或者是替换掉这个消息。
分享到:
相关推荐
VC屏蔽Enter和ESC退出程序.txtVC屏蔽Enter和ESC退出程序.txt
1.网页游戏登录器,使用webbrowser。 2.防止webbrowser网页跳转,强行在程序浏览器中...3.重载PreTranslateMessage,实现屏蔽vc6基本对话框默认的回车和ESC键退出。 4.实时获取点击网页flash游戏时,鼠标点击的坐标。
摘要:VC/C++源码,界面编程,对话框 VC++如何屏蔽窗体对话框按ESC或ENTER键退出的功能,也就是说,当窗体打开的时候,按ESC或ENTER键不能关闭窗口,也就是让这两个键失效,源码实例运行截图如上所示,不过从截图上...
VC 屏蔽和解除任意按钮,运行于VC6.0环境,引用了一个外部的Dll,MaskKey.dll的源码在MaskKey目录下,同样也可在VC 6.0下顺利编译成功。 // 屏蔽任意按键 void CTestMaskKeyDlg::OnButtonMaskKey() { ...
运用vc++如何屏蔽对话框中的ese键和enter键
屏蔽WIN、ALT+TAB、CTRL+ESC键的低级键盘钩子.zip
VC hook基于钩子的原理屏蔽键盘任意按键,为了使用方便,生成一个标准的DLL,利用底层键盘钩子实现屏蔽键盘任意按键,作者: 卢培培 (goodname008),包括了底层键盘钩子函数、开始屏蔽键盘按键的模块、停止屏蔽键盘...
VC++如何使用ENTER键控制对话框中控件的输入焦点呢?这个小程序将为您解开其中的原由,希望VC初学者下载参考。
VC实现屏蔽Ctrl+Alt+Del键源代码,在软件开发过程中,有时候为防止用户以为操作,需要屏蔽一些必要的按键,本代码实现屏蔽Ctrl+Alt+Del键
Visual C++实现Win2000下屏蔽Ctrl+Alt+Del键
本程序首先判断程序处于何种用户下做出注册表。不同的设置。在Administrator账户下,删除屏蔽某些键盘的键值;在非管理员账户下屏蔽掉Delete键,左右Alt键和Win键。在使用时请注意一些,以免造成不必要的麻烦。
VC 获取并显示键盘各个键的ASCII代码,可看作是一个键盘ASCII码查询器,作者:倪梓鹏。程序实现的功能:显示输入的按键,显示输入的按键的ASCII码,处理Enter等其他键,操作方法,打开本程序后,敲击键盘上的任意键...
对键盘的响应中有时不希望某些键被程序响应,比如一个数字串不希望存在小数点,就需要做处理,而且,一般情况下,ENTER,ESC分别对应着onok(),oncancel()函数,会把当前窗体关闭。
写了一个利用底层键盘钩子阻止任意按键的DLL
屏蔽右键和左键拖动比较简洁好用的代码,复制粘贴提示输出alert('抱歉,此页面禁止使用右键')。
VC实现特定编辑框上对回车键响应,介绍的挺详细!
VC注册与屏蔽热键源码,详情http://blog.csdn.net/wangningyu
vc全局hook,已经实现,代码有注释,打开hooktest\Release下的hooktest.exe程序后屏蔽鼠标,esc键可以退出程序,F2最小化,F3恢复。
visual c++拦截关闭消息.rar
VC 设计制作异形的不规则窗口实例代码,实现了位图窗体、椭圆窗体、异形不规则窗体,用字的轮廓来修饰窗体,窗体看... 操作时,可点击 不规则窗体的客户区实现拖拽窗体,演示完毕可按ESC键退出,然后查看下一窗体。