如何能知道一个应用程序是被系统热键激活的啊?

ynduanlian 2001-11-06 06:58:27
(不好意思,下面的源程序是用VB写的,但多次上CSDN的经验表明,C/C++这边的高手毕竟要多些,就到这边来求教了)

我在程序中注册了系统热键,(如CTRL+A),但是成功后我就不能在程序中对CTRL+A做出响应了,我如何在CTRL+A激活应用程序后仍对这一键盘事件做出响应呢?

程序:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyA And Shift = 2 Then MsgBox "OK"
End Sub

Private Sub Form_Load()
'Ctrl+A.
ResHotKey = SendMessage(Me.hwnd, WM_SETHOTKEY, HOTKEYF_CTRL * 256 + vbKeyA, 0)
End Sub
显然,Form_Load成功执行后,CTRL+A的KeyDown事件就不执行了,我如何才能让CTRL+A的Key_Down事件仍然执行?
...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu_feng_fly 2001-11-07
  • 打赏
  • 举报
回复
注册热键以后所有的这个热键的消息都回传给你的,在vc里面可以在pretransformessage里面响应,vb也许可以改变默认的窗口处理函数,把你的处理加进去吧,具体的api函数我忘了
ynduanlian 2001-11-07
  • 打赏
  • 举报
回复
这边看来也没人知道……
ynduanlian 2001-11-06
  • 打赏
  • 举报
回复
TO: bdsc
当shift=2时
vkKeyA and Shift 是 CTRL+A
当shift=1时是 SHIFT+A

TO: azs:
form_active在不是系统热键而激活的情况也会响应,不是我想要的。
azs 2001-11-06
  • 打赏
  • 举报
回复
没有学过vb
是不是有一个form_active时间可以响应啊?
bdsc 2001-11-06
  • 打赏
  • 举报
回复
没有学过vb
vbKeyA And Shift 是 Ctrl+A 还是shift + a

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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