在我的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