vb6 – 无论我的表单上有什么控件是目标,我如何捕获键的起伏?

vb6 – 无论我的表单上有什么控件是目标,我如何捕获键的起伏?,第1张

概述我想捕获ctrl / alt / etc键的起伏,无论我的表单上的哪个控件获取keyup或keydown事件.由于我的表单上有大约100个控件,如果我要为每个单独的控件添加代码,那将会非常难看.如何在不必这样做的情况下实现这一目标? PS:SetWindowsHook和SetWindowsHookEx有什么区别? 您需要将每个Form的KeyPreview属性设置为True.随后,您可以在表单级别 我想捕获ctrl / alt / etc键的起伏,无论我的表单上的哪个控件获取keyup或keydown事件.由于我的表单上有大约100个控件,如果我要为每个单独的控件添加代码,那将会非常难看.如何在不必这样做的情况下实现这一目标?

PS:SetWindowsHook和SetwindowsHookEx有什么区别?

解决方法 您需要将每个Form的KeyPrevIEw属性设置为True.随后,您可以在表单级别捕获键盘事件,以及单个控件级别:

Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)    DeBUG.Print "Form_KeyDown"End SubPrivate Sub Form_KeyPress(KeyAscii As Integer)    DeBUG.Print "Form_KeyPress"End SubPrivate Sub Form_KeyUp(KeyCode As Integer,Shift As Integer)    DeBUG.Print "Form_KeyUp"End Sub

本质上,表单在控件之前获得每个键盘事件的“预览”,例如,

Form_KeyDownControl_KeyDownForm_KeyUpControl_KeyUp

至于SetwindowsHook& SetwindowsHookEx,前者是原始的Win16 API调用,后者是Win32和Win64 API调用.据我所知,不推荐使用SetwindowsHook,它不在当前的MSDN库中.

总结

以上是内存溢出为你收集整理的vb6 – 无论我的表单上有什么控件是目标,我如何捕获键的起伏?全部内容,希望文章能够帮你解决vb6 – 无论我的表单上有什么控件是目标,我如何捕获键的起伏?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1245039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存