对话框处理Enter,Esc键相应问题

在类视图里面选择你要实现的类,右键属性,在属性里面找到函数PreTranslateMessage,然后添加PreranslateMessage的消息函数,在PreTranslateMessage的消息函数中添加你要实现处理按键事件的代码。

[cpp] view plaincopyprint?

  1. /********************************************************
  2. * 方法名称: PreTranslateMessage(MSG *pMsg)
  3. * 描述: 该方法主要是处理传递消息的,任何消息产生的消息都会经过这个方法处理,
  4. * 然后,消息才会到达相应的应用程序中。
  5. * 调用模块:CDialogEx::PreTranslateMessage(pMsg)父类的对应方法
  6. * 输入: MSG类型的消息对象指针
  7. * 输出: 无
  8. * 返回值: bool值
  9. *********************************************************/
  10. BOOL CSerialDlg::PreTranslateMessage(MSG* pMsg)
  11. {
  12. // TODO: Add your specialized code here and/or call the base class
  13. // 把Esc和Enter按键事件消息过滤掉,否则该消息会导致对应应用程序调用OnOK()方法,结束应用程序
  14. if (pMsg->message == WM_KEYDOWN)
  15. {
  16. switch(pMsg->wParam)
  17. {
  18. case VK_ESCAPE: //Esc按键事件
  19. return true;
  20. case VK_RETURN: //Enter按键事件
  21. return true;
  22. default:
  23. ;
  24. }
  25. }
  26. return CDialogEx::PreTranslateMessage(pMsg);
  27. }

来自为知笔记(Wiz)

时间: 2024-11-01 01:08:17

对话框处理Enter,Esc键相应问题的相关文章

qt之esc键

Esc键对大家来说实在熟悉不过的了,在Qt中Esc键也会默认的进行一些事件的触发,今天对Esc键测试了一下,突然发现不像我想象的那样,在QDialog中按下Esc键会默认调用reject()方法而不是closeEvent(QCloseEvent *event)或者其他事件.所以在这里如何管理和操作Esc键呢? 1.重新实现reject()方法 void LoginDialog::reject() { //关闭窗口,不一定非得是close(),可以重新执行其他事件 this->close(); }

duilib BUG修复 --- 按一次ESC键, 关闭多个窗口

BUG造成的影响 继承自WindowImplBase的窗口类, 如果没有重写重写ResponseDefaultKeyEvent而由WindowImplBase默认处理的话, 会导致按一次有ESC键, 导致多个窗口全部关闭. 产生原因 第1张图: ESC按键属于PreMessage, 所以会经由这里的PreMessageHandlers处理, 如果 MessageHandler 处理了该消息, 那么她就应该置 bHandled 为 true, 以防止 ESC 消息继续往下传导致多个窗口关闭. 第2

Qt编程中QDiaog的ESC键(按下Esc键会默认调用reject()方法)

最近使用QDialog时,按了下Esc键,导致QDialog被关闭,而后续的数据处理出现了问题.原来在QDialog中按下Esc键会默认调用reject()方法而不是closeEvent(QCloseEvent*event)或者其他事件. 处理的方法: (注意:QDialog的close()函数也是会调用reject()函数和关闭函数,若在reject()中直接调用close()也会无法关闭,要先调用hide()) (1)重新实现reject()方法 [html] view plain copy

按esc键关闭弹出层

jquery中获取键盘按键 测试浏览器:IE6/IE7/IE8,FireFox,Chrome,Opera $(document).keyup(function(e){ var key =  e.which; if(key == 27){ alert('按下了ESC键,关闭弹出层'); } }); 或者(这个只在:IE8,FireFox,Chrome测试过) $(document).keyup(function(e){ if (e.keyCode == 27) { alert('按下了ESC键,关

在屏幕中间显示,按ESC键后改变字符的颜色

程序功能:编写程序在屏幕中间显示“a”~“z”,并可以让人看清,这个任务比较好实现. (1)在b800:[ 160*12+40*2]处存入a的ASCII码.(2)在循环中使用一个100000000000H次的循环空转达到延迟效果.(3)按键盘引发int9中断改变颜色 那么如何实现,按下Esc 键后,改变显示的颜色呢? 键盘输入到达60h 端口后,就会引发9号中断,CPU 则转去执行int 9中断例程. 我们可以编写int 9中断例程,功能如下: ?(1)从60h 端口读出键盘的输入: ?(2)调

解决bootstrap中modal Esc键不生效问题

bootstrap为我们提供了很多方便的页面控件,modal就是其中之一.很多人在使用modal时遇到了esc键按下无法关闭的问题,即使显式传入keyboard选项也不生效. $('#editFormItemModal').modal({show:true, keyboard:true}); 此问题在2.1以后版本出现,要解决这个问题也很简单,modal所在div添加一个tabindex属性即可: <div class="fade modal" tabindex="-1

屏蔽回车键和ESC键

BOOL CTMFCDDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) { OnBtnlogin(); //当按下回车键执行登录操作 return TRUE; } if (pMsg->mess

ESC键常用快捷键分享,帮你快速成为快捷键达人

快捷键是我们经常听说过的一词,它可以说是我们日常办公中的好帮手,熟练掌握快捷键可以提高我们的工作效率,达到一个事半功倍的效果,提到快捷键很多人想到的并不是ESC键,而是Ctrl.shift键和Alt键,更多的人们会认为ESC键只是起到一个退出的功能,那么,你错了,下面让我们重新认识这个快捷键吧! 1.起到一个停止打开网址的作用 当你在认真工作,突然电脑上弹出一个弹窗,你不小心打开了,这时按下ESC键就可以将打开的窗口退出了: 2.一键清除字体的选字框 当在word中输入文字内容时,如果发现瓶邪错

使用Esc键关闭对话框

Private Sub ss_Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown ‘对话框的KeyPreview属性需设置为True e.Handled = True If e.KeyValue = 27 Then Me.Close() End If End Sub 原文地址:https://www.cnblogs.com/rf8862/p/1