|
Одновременное нажатие нескольких клавиш |
|
|
Данный пример позволяет определить, какие
клавиши пользователь нажал одновременно. Данный
пример идеально применим при создании игрушек,
когда необходимо пользоваться клавишами
управления (4 серые клавиши со стрелками).
Добавьте на форму 5 элементов Label 'Массив currectKeys содержит в себе все нажатые
клавиши
'Для примера, если нажата клавиша ПРОБЕЛ, элемент
массива currentKeys(32) = True
'(потому что keyCode клавиши равен 32), а все остальные
клавиши = False.
Dim currentKeys(0 To 250) As Boolean
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'При нажатии на клавишу запускается событие KeyDown
снова и снова.
'Идет проверка: нажата клавиша только что клавиша
уже нажата
If currentKeys(KeyCode) = False Then
'Обновить массив, если клавиша нажата
currentKeys(KeyCode) = True
If KeyCode = vbKeyLeft Then Label1 = "Left"
If KeyCode = vbKeyRight Then Label2 = "Right"
If KeyCode = vbKeyUp Then Label3 = "Up"
If KeyCode = vbKeyDown Then Label4 = "Down"
If KeyCode = vbKeySpace Then Label5 = "Fire"
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
'Обновить массив, когда клавиша отжата
currentKeys(KeyCode) = False
If KeyCode = vbKeyLeft Then Label1 = ""
If KeyCode = vbKeyRight Then Label2 = ""
If KeyCode = vbKeyUp Then Label3 = ""
If KeyCode = vbKeyDown Then Label4 = ""
If KeyCode = vbKeySpace Then Label5 = ""
End Sub
Private Sub Form_Load()
'Обнулить значения элементов Label
Label1 = ""
Label2 = ""
Label3 = ""
Label4 = ""
Label5 = ""
End Sub
|
|
|
|
|
|
|