2009-12-30 70 views
1

在我的VB6程序中,我有大量的熱鍵,如X,A,D ...等。我還有一個聊天系統,每當我使用X或A字符時,它都會執行這些熱鍵的操作。例如,如果X要關閉應用程序(並非真的如此),那麼當我在聊天文本框中輸入「fiXing」時,它將關閉應用程序。任何人都可以告訴我如何禁用熱鍵時鍵入輸入鍵除外?鍵入時禁用HotKeys - VB6

感謝,

凱文

+0

讓我們備份一下。你聽起來好像你有熱鍵已經工作,只是想在輸入文本框的時候抑制它們的功能。你有他們工作嗎?你能否將相關的代碼添加到你的問題中,以便我們更好地理解問題? – raven 2009-12-30 22:42:38

+0

好吧,我有一噸-_-。像所有F1 F2 ...等按鍵一樣,還有一些輸入,x,shift ...鍵。這些都是在我創建的遊戲中實現的。 – lab12 2009-12-31 04:08:25

回答

1

在聊天TextBoxGotFocus事件設置一個標誌,禁用熱鍵。然後在TextBoxLostFocus事件中重新啓用它們。

我不知道你的熱鍵,但代碼來設置標誌如何陷阱很簡單:

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 
+0

你知道代碼的樣子嗎? – lab12 2009-12-30 17:15:32

+0

好吧..我仍然對剛剛發佈的代碼感到困惑......:/。我不明白..在If語句中,我是否在代碼中放入了熱鍵? – lab12 2009-12-30 20:51:28

0

它可能會更好地使用您的熱鍵的組合鍵。按說比較常見的是Ctrl + XAlt + X。您可以在KeyDown或KeyUp事件中測試它們。

If KeyCode = vbKeyX And (Shift And vbCtrlMask = vbCtrlMask) Then 
    ' Do something 
End If