请问怎样给控件加快捷键功能

sproll 2005-09-25 01:14:43
我做了一个按钮控件,继承自COleControl,我想给它加快捷键功能,比如说它的文本如果是:&Text,那么ATL+T就相当于按了按钮,但是我重载了PreTranslateMessage事件之后,发现只有当控件获得焦点的时候,键盘事件才会触发PreTranslateMessage,而在一个窗体中它不一定随时都有焦点。请问怎样才能让控件获得窗体级的键盘事件?或者有没有其它实现快捷键的方法?
PS:由于效率上考虑,不使用HOOK。
...全文
187 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sproll 2005-09-27
  • 打赏
  • 举报
回复
我觉得RegisterHotKey不行。因为那是系统级的热键。这样做的话,那使用控件的EXE程序就不能开两个实例了。
谢谢大家的关注。
poplv 2005-09-26
  • 打赏
  • 举报
回复
用RegisterHotKey()注册热键,然后在WM_HOTKEY的消息响应函数中调用按钮的消息响应函数。
热键注销用UnregisterHotKey()。
具体可以参考MSDN。
Kudeet 2005-09-26
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_ActiveX_controls.3a_.Advanced_Topics.asp
Hendy_So 2005-09-25
  • 打赏
  • 举报
回复
这个本应该在父窗口中处理的.

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧