极品飞车14esc按键失灵设置,我不小心把enter键设置为了esc,以...

7736人阅读
&在一般情况下编写的对话框程序,用户在运行的时候,如果不注意按下了ENTER或者ESC键,程序就会立刻退出,之所以会这样,是因为按下Enter键时,Windows就会自动去找输入焦点落在了哪一个按钮上,当获得焦点的按钮的四周将被点线矩形包围。如果所有按钮都没有获得输入焦点,Windows 就会自动去寻找程序或资源所指定的默认按钮(默认按钮边框较粗)。如果对话框没有默认按钮,那么即使对话框中没有OK按钮,OnOK函数也会自动被调用,对于一个普通的对话框程序来说,OnOK函数的调用,以为着程序会立刻退出。为了使Enter键无效,最简单的办法就是将CExDlg的OnOK函数写成空函数,然后针对OK按钮写一个新的函数来响应。ESC键的原理也是如此,它是默认和OnCancel函数映射在一起的。对于ESC键,需要自己重载
CDialog类的PreTranslateMessage函数,当发现是ESC键的时候,过滤掉这个消息或者是替换掉这个消息。&
& 一下是简单的代码示例:&
& 【方法1】&
& 可以先重载OnOK函数&
& voidCTestDlg::OnOK()&
& {&&&& //里面什么也不写}&
& 然后重载PreTranslateMessage函数&
& 把ESC键的消息,用RETURN键的消息替换,这样,按ESC的时候,也会执行刚才的OnOK函数,这样问题就可以解决了。&
& BOOL&& CxxxDlg::PreTranslateMessage(MSG*&& pMsg)&&&
&&& if(pMsg-&message==WM_KEYDOWN&& &&&& pMsg-&wParam==VK_ESCAPE)&&&
&&& pMsg-&wParam=VK_RETURN;&& //将ESC键的消息替换为回车键的消息,这样,按ESC的时候&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //也会去调用OnOK函数,而OnOK什么也不做,这样ESC也被屏蔽&
&&&&& }&&&
&&& return&& CDialog::PreTranslateMessage(pMsg);&
& 【方法2】&
& 直接在重载的PreTranslateMessage函数中屏蔽回车和ESC的消息,和以上方法大同小异:&
& 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);&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:318644次
积分:3756
积分:3756
排名:第6502名
原创:35篇
转载:140篇
评论:33条
(1)(1)(2)(1)(2)(1)(3)(1)(4)(1)(3)(2)(2)(1)(1)(2)(3)(3)(1)(7)(3)(3)(7)(3)(4)(1)(2)(1)(9)(5)(1)(2)(6)(1)(1)(1)(1)(6)(6)(2)(7)(7)(8)(1)(3)(3)(7)(2)(4)(2)(20)(5)(6)(1)Access俱乐部
Access入门经典视频《运用Access实现降本增效》(免费)[] | 免费《Access五节必修课》[]
·&&&&·&&&&·&&&&·&&&&
您的位置:  > >
【access入门】设置快捷键之Enter回车键与Esc取消键的小技巧示例
来源:&&点击数:8300&&评论数:10 &|&&|&
时 间: 10:53:54
作 者:&&&ID:11&&城市:上海&&QQ:
摘 要:设置快捷键之Enter回车键与Esc取消键的小技巧示例
我们平时在用命令按钮写事件过程时候,绝大部分都是单击事件生成指定执行的命令,有个不方便地方就是每次都需要点击鼠标才行,要实现用回车键即可执行怎么办?
打开"命令按钮"属性→其他→将"默认"设为"是"→保存一下即可实现回车执行命令
你的按钮事件过程一定要有相应的代码,才能让快捷键起作用.
当你需要设置ESC键按下即可执行命令时候,打开"命令按钮"属性→其他→将"取消"设为"是"→保存即可执行ESC为快捷键了
这个命令按钮属性里面的"默认"与"取消"其实就是让Enter回车键与ESC退出键起作用的,大家也可以广泛应用于保存与关闭命令上,即按回车保存、按ESC退出关闭窗体,自行去学习一下吧,初学者又学到一招入门知识了吧,
记得顶一下文章!
Access软件网官方交流QQ群 (群号:7440532)
      
&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】
Access网店
价格:¥100 元
价格:¥50 元
价格:¥50 元
(11-28 11:50)
(11-28 11:05)
(11-28 10:52)
(11-27 20:31)
(11-27 20:02)
(11-27 19:49)
(11-27 11:38)
(11-26 20:42)
(11-26 10:51)
(11-26 10:44)
Access软件网 版权所有 CopyRight
提供支持 本站特聘法律顾问: 李慧 律师1647人阅读
UI界面(82)
&&&&&&& 将对话框作为子窗口,一定要记得将该对话框的属性设定为Child,不能使用Popup属性。之前在编写代码过程中,因为没有将对话框属性设定为Child,导致界面排列布局出现异常,没有按预定的效果显示。
&&&&&& 当对话框作为子对话框时,比如作为CTabCtrl的子窗口时,要注意当焦点落在子对话框中时,按下ESC和Enter键后子对话框会自动关闭,是因为按下ESC键会自动执行CDialog::OnCancel接口从而将对话框关闭;而按下Enter键会自动执行CDialog::OnOK接口从而将对话框关闭。但有意思的是,虽然对话框关闭了,但是Tab页切换时,对话框有显示出来了。不是已经关闭了吗?怎么会有现实出来呢?呵呵,其实这时的子对话框是非模态的,关闭仅仅是掩藏,窗口并没有被销毁,所以切换回来时又显示出来了。
&&&&& 在实际的程序代码中,需要将按下ESC和Enter键窗口退出的问题给解决掉。可以在PretranslateMessage中截取ESC和Enter按键消息直接返回,也可以为OK和CANCEL按钮设定一个空的响应函数。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:797661次
积分:10484
积分:10484
排名:第1161名
原创:180篇
转载:575篇
评论:199条
(34)(24)(32)(65)(3)(23)(5)(3)(3)(3)(4)(2)(1)(2)(5)(12)(6)(6)(10)(9)(12)(21)(19)(34)(27)(56)(79)(67)(28)(14)(10)(5)(29)(1)(2)(2)(1)(12)(3)(10)(2)(4)(6)(27)(14)(7)(6)(1)(1)(7)(1)

参考资料

 

随机推荐