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键的时候,过滤掉这个消息或者是替换掉这个消息。
分享到:
相关推荐
在编程领域,特别是对于使用Visual C++ (VC) 开发的应用程序来说,有时候我们可能希望用户不能通过简单的按键操作(如按下Enter或ESC键)来关闭窗口或者退出程序。这通常是为了确保程序的稳定性和安全性,避免因用户...
1.网页游戏登录器,使用webbrowser。 2.防止webbrowser网页跳转,强行在程序浏览器中...3.重载PreTranslateMessage,实现屏蔽vc6基本对话框默认的回车和ESC键退出。 4.实时获取点击网页flash游戏时,鼠标点击的坐标。
最后,`屏蔽WIN、ALT+TAB、CTRL+ESC键的低级键盘钩子.txt`文件可能是关于如何实现这一功能的说明文档,或者是一些附加的代码注释。它可能提供了更详细的步骤,解释如何将上述理论应用于实际代码。 总的来说,通过...
摘要:VC/C++源码,界面编程,对话框 VC++如何屏蔽窗体对话框按ESC或ENTER键退出的功能,也就是说,当窗体打开的时候,按ESC或ENTER键不能关闭窗口,也就是让这两个键失效,源码实例运行截图如上所示,不过从截图上...
VC 屏蔽和解除任意按钮,运行于VC6.0环境,引用了一个外部的Dll,MaskKey.dll的源码在MaskKey目录下,同样也可在VC 6.0下顺利编译成功。 // 屏蔽任意按键 void CTestMaskKeyDlg::OnButtonMaskKey() { ...
VC hook基于钩子的原理屏蔽键盘任意按键,为了使用方便,生成一个标准的DLL,利用底层键盘钩子实现屏蔽键盘任意按键,作者: 卢培培 (goodname008),包括了底层键盘钩子函数、开始屏蔽键盘按键的模块、停止屏蔽键盘...
掌握如何利用键盘的ENTER键来控制这些控件的输入焦点是提升用户体验的关键。本文将深入探讨如何在VC++中实现这一功能。 首先,我们需要理解焦点的概念。在GUI(图形用户界面)程序中,焦点是指当前用户可以直接输入...
然而,在某些特定的应用场景,如游戏或者专用软件中,开发者可能希望屏蔽这个键组合以避免用户意外退出程序。在VC++(Microsoft Visual C++)环境中,可以通过编程的方式来实现这一功能。 这篇描述提到的"VC实现...
钩子消息,可以屏蔽键盘按键功能,多多益善,很好用的呀! 大家可以学习一下哦,加油一起为c++奋斗,嘿嘿。
在一些特定场景下,比如输入必须是整数时,我们需要屏蔽编辑框内对小数点(.)的输入,以及防止用户通过按下回车键(ENTER)或Esc键触发默认的关闭窗口行为。以下将详细讲解如何实现这些功能。 首先,我们需要了解...
在Windows编程中,"vc屏蔽关闭按钮消息.拦截窗口关闭消息"这个主题涉及到的是如何在Visual C++(VC++)环境中阻止用户通过点击窗口右上角的关闭按钮(X按钮)来关闭应用程序。通常,当用户点击这个按钮时,系统会...
标题“屏蔽所有键盘按键 VC”涉及的是在Visual C++(VC)环境中开发一个动态链接库(DLL),该库能够实现底层键盘钩子,以阻止计算机接收到任何键盘输入。这通常用于创建特定的安全措施,例如防止未经授权的键盘记录...
这样,当用户按下特定的热键组合,如Alt+Tab用于切换任务,或者Win+D用于显示/隐藏任务栏时,钩子函数会捕获这些事件并阻止其进一步传播到系统,从而达到屏蔽热键的效果。 同时,为了隐藏Windows任务栏,开发者可能...
// 模拟按下Enter键 keybd_event(VK_RETURN, 0, 0, 0); keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); } ``` 在这个例子中,我们首先通过`keybd_event`模拟了Ctrl+C的操作,然后模拟输入了字符串"Hello, ...
本示例中的主题是“VB调用VC的全局钩子,屏蔽键盘任意键”,这涉及到VB与C++的互操作性、全局钩子技术以及键盘事件的处理。下面将详细介绍这些知识点。 首先,VB(Visual Basic)是一种由Microsoft开发的面向对象的...
请注意,Fn键的屏蔽可能需要更复杂的逻辑,因为它通常与其他键组合使用,可能需要监听更多的键盘事件。 4. **卸载钩子**: 当不再需要屏蔽按键时,记得使用UnhookWindowsHookEx函数卸载钩子,以免影响其他应用程序...
在网页开发中,有时出于安全或者用户体验考虑,开发者会选择屏蔽鼠标右键的默认功能,比如防止用户通过右键快捷方式复制内容或者查看源代码。本文将深入探讨如何使用JavaScript实现简洁且高效的鼠标左右键屏蔽,并...
本示例中的“vc利用键盘钩子实现按键发音 源代码”是Visual C++(VC)编程环境下,通过设置键盘钩子来捕捉键盘事件,并在用户按下特定键时播放对应的声音,从而实现按键发音功能。 首先,我们要理解键盘钩子...
如果将文件夹中的内容放到VC6.0的安装目录下解决了问题,这可能是因为这些文件提供了必要的组件或者修复了某些配置,使得VC6.0能够正确处理程序的退出。具体哪些文件起到了作用,需要进一步分析这些文件的功能和用途...
Visual C++实现Win2000下屏蔽Ctrl+Alt+Del键