`

VC 屏蔽 ENTER或者ESC键 退出事件

阅读更多

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退出程序.txt

    在编程领域,特别是对于使用Visual C++ (VC) 开发的应用程序来说,有时候我们可能希望用户不能通过简单的按键操作(如按下Enter或ESC键)来关闭窗口或者退出程序。这通常是为了确保程序的稳定性和安全性,避免因用户...

    VC6网页游戏登录器源码,防止跳转,屏蔽回车和ESC键退出,获取鼠标左键在游戏中点击的坐标

    1.网页游戏登录器,使用webbrowser。 2.防止webbrowser网页跳转,强行在程序浏览器中...3.重载PreTranslateMessage,实现屏蔽vc6基本对话框默认的回车和ESC键退出。 4.实时获取点击网页flash游戏时,鼠标点击的坐标。

    屏蔽WIN、ALT+TAB、CTRL+ESC键的低级键盘钩子hook

    最后,`屏蔽WIN、ALT+TAB、CTRL+ESC键的低级键盘钩子.txt`文件可能是关于如何实现这一功能的说明文档,或者是一些附加的代码注释。它可能提供了更详细的步骤,解释如何将上述理论应用于实际代码。 总的来说,通过...

    VC++屏蔽对话框按ESC或ENTER键退出

    摘要:VC/C++源码,界面编程,对话框 VC++如何屏蔽窗体对话框按ESC或ENTER键退出的功能,也就是说,当窗体打开的时候,按ESC或ENTER键不能关闭窗口,也就是让这两个键失效,源码实例运行截图如上所示,不过从截图上...

    VC 屏蔽键盘任意按键.rar

    VC 屏蔽和解除任意按钮,运行于VC6.0环境,引用了一个外部的Dll,MaskKey.dll的源码在MaskKey目录下,同样也可在VC 6.0下顺利编译成功。  // 屏蔽任意按键  void CTestMaskKeyDlg::OnButtonMaskKey()  {   ...

    VC 钩子 hook屏蔽键盘按键.rar

    VC hook基于钩子的原理屏蔽键盘任意按键,为了使用方便,生成一个标准的DLL,利用底层键盘钩子实现屏蔽键盘任意按键,作者: 卢培培 (goodname008),包括了底层键盘钩子函数、开始屏蔽键盘按键的模块、停止屏蔽键盘...

    VC使用ENTER键控制对话框中控件的输入焦点

    掌握如何利用键盘的ENTER键来控制这些控件的输入焦点是提升用户体验的关键。本文将深入探讨如何在VC++中实现这一功能。 首先,我们需要理解焦点的概念。在GUI(图形用户界面)程序中,焦点是指当前用户可以直接输入...

    VC实现Win2000下屏蔽Ctrl+Alt+Del键源代码.rar

    然而,在某些特定的应用场景,如游戏或者专用软件中,开发者可能希望屏蔽这个键组合以避免用户意外退出程序。在VC++(Microsoft Visual C++)环境中,可以通过编程的方式来实现这一功能。 这篇描述提到的"VC实现...

    屏蔽键盘按键 vc++代码

    钩子消息,可以屏蔽键盘按键功能,多多益善,很好用的呀! 大家可以学习一下哦,加油一起为c++奋斗,嘿嘿。

    vc6.0下屏蔽edit控件里面的小数点

    在一些特定场景下,比如输入必须是整数时,我们需要屏蔽编辑框内对小数点(.)的输入,以及防止用户通过按下回车键(ENTER)或Esc键触发默认的关闭窗口行为。以下将详细讲解如何实现这些功能。 首先,我们需要了解...

    vc屏蔽关闭按钮消息.拦截窗口关闭消息

    在Windows编程中,"vc屏蔽关闭按钮消息.拦截窗口关闭消息"这个主题涉及到的是如何在Visual C++(VC++)环境中阻止用户通过点击窗口右上角的关闭按钮(X按钮)来关闭应用程序。通常,当用户点击这个按钮时,系统会...

    屏蔽所有键盘按键 VC

    标题“屏蔽所有键盘按键 VC”涉及的是在Visual C++(VC)环境中开发一个动态链接库(DLL),该库能够实现底层键盘钩子,以阻止计算机接收到任何键盘输入。这通常用于创建特定的安全措施,例如防止未经授权的键盘记录...

    VC 利用HOOK屏蔽热键隐藏Windows任务栏.rar

    这样,当用户按下特定的热键组合,如Alt+Tab用于切换任务,或者Win+D用于显示/隐藏任务栏时,钩子函数会捕获这些事件并阻止其进一步传播到系统,从而达到屏蔽热键的效果。 同时,为了隐藏Windows任务栏,开发者可能...

    vc模拟按键实现代码,基于keybd_event

    // 模拟按下Enter键 keybd_event(VK_RETURN, 0, 0, 0); keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); } ``` 在这个例子中,我们首先通过`keybd_event`模拟了Ctrl+C的操作,然后模拟输入了字符串"Hello, ...

    VB调用VC的全局钩子,屏蔽键盘任意键.rar_vb hook屏蔽键盘_vb 键盘鼠标_vb 鼠标键盘_屏蔽全局键盘

    本示例中的主题是“VB调用VC的全局钩子,屏蔽键盘任意键”,这涉及到VB与C++的互操作性、全局钩子技术以及键盘事件的处理。下面将详细介绍这些知识点。 首先,VB(Visual Basic)是一种由Microsoft开发的面向对象的...

    c++ hook实现屏蔽键盘win,fn,右键按键

    请注意,Fn键的屏蔽可能需要更复杂的逻辑,因为它通常与其他键组合使用,可能需要监听更多的键盘事件。 4. **卸载钩子**: 当不再需要屏蔽按键时,记得使用UnhookWindowsHookEx函数卸载钩子,以免影响其他应用程序...

    比较简洁好用的屏蔽鼠标左右键代码

    在网页开发中,有时出于安全或者用户体验考虑,开发者会选择屏蔽鼠标右键的默认功能,比如防止用户通过右键快捷方式复制内容或者查看源代码。本文将深入探讨如何使用JavaScript实现简洁且高效的鼠标左右键屏蔽,并...

    vc利用键盘钩子实现按键发音 源代码

    本示例中的“vc利用键盘钩子实现按键发音 源代码”是Visual C++(VC)编程环境下,通过设置键盘钩子来捕捉键盘事件,并在用户按下特定键时播放对应的声音,从而实现按键发音功能。 首先,我们要理解键盘钩子...

    vc6.0 debug下结束程序,程序不退出

    如果将文件夹中的内容放到VC6.0的安装目录下解决了问题,这可能是因为这些文件提供了必要的组件或者修复了某些配置,使得VC6.0能够正确处理程序的退出。具体哪些文件起到了作用,需要进一步分析这些文件的功能和用途...

    VC实现Windows下屏蔽Ctrl+Alt+Del键

    Visual C++实现Win2000下屏蔽Ctrl+Alt+Del键

Global site tag (gtag.js) - Google Analytics