在我的VB6程序中,我有大量的热键,如X,A,D ...等。我还有一个聊天系统,每当我使用X或A字符时,它都会执行这些热键的操作。例如,如果X要关闭应用程序(并非真的如此),那么当我在聊天文本框中输入“fiXing”时,它将关闭应用程序。任何人都可以告诉我如何禁用热键时键入输入键除外?键入时禁用HotKeys - VB6
感谢,
凯文
在我的VB6程序中,我有大量的热键,如X,A,D ...等。我还有一个聊天系统,每当我使用X或A字符时,它都会执行这些热键的操作。例如,如果X要关闭应用程序(并非真的如此),那么当我在聊天文本框中输入“fiXing”时,它将关闭应用程序。任何人都可以告诉我如何禁用热键时键入输入键除外?键入时禁用HotKeys - VB6
感谢,
凯文
在聊天TextBox
的GotFocus
事件设置一个标志,禁用热键。然后在TextBox
的LostFocus
事件中重新启用它们。
我不知道你的热键,但代码来设置标志如何陷阱很简单:
Private suppressHotkeys As Boolean
Private Sub txtChat_GotFocus()
suppressHotkeys = True
End Sub
Private Sub txtChat_LostFocus()
suppressHotkeys = False
End Sub
然后在捕捉热键的代码,只检查标志:
If (Not suppressHotkeys) Then
//process hotkey
End If
它可能会更好地使用您的热键的组合键。按说比较常见的是Ctrl + X或Alt + X。您可以在KeyDown或KeyUp事件中测试它们。
If KeyCode = vbKeyX And (Shift And vbCtrlMask = vbCtrlMask) Then
' Do something
End If
让我们备份一下。你听起来好像你有热键已经工作,只是想在输入文本框的时候抑制它们的功能。你有他们工作吗?你能否将相关的代码添加到你的问题中,以便我们更好地理解问题? – raven 2009-12-30 22:42:38
好吧,我有一吨-_-。像所有F1 F2 ...等按键一样,还有一些输入,x,shift ...键。这些都是在我创建的游戏中实现的。 – lab12 2009-12-31 04:08:25