日期:2014-05-17  浏览次数:20776 次

问个基础问题,系统热键和响应键盘事件的区别
比如我按下F2 ,实现对窗口的重命名.

用RegisterHotKey的方法 和用 keypress 的方法 有什么本质的区别?

说的有点拗口,不知道能不能理解

------解决方案--------------------
RegisterHotKey可以注册全局的,Keypress只是相应按键消息,对象要获得焦点才有效
------解决方案--------------------
用RegisterHotKey的是系统热键 也就是说 系统在检测
keypress做的热键 是你的窗体在检测 如果你的窗体最小化 或者失去焦点 就没有办法触发keypress事件

RegisterHotKey 会把快捷键登记起来 不管你窗体有没有焦点有没有最小化 一旦系统检测到热键触发 系统会向目标窗体发送 WM_HOTKEY 消息来告知目标窗体 "你登记的热键触发了" 然后目标窗体处理 WM_HOTKEY 消息就可以了