Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Do
If GetAsyncKeyState(1) <> 0 And GetAsyncKeyState(2) <> 0 Then
Me.Caption = "Нажаты обе"
Else
If GetAsyncKeyState(2) <> 0 Then Me.Caption = "Нажата левая кнопка"
If GetAsyncKeyState(1) <> 0 Then Me.Caption = "Нажата правая кнопка"
End If
Sleep 2
DoEvents
Loop
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Caption = ""
End Sub
xolod писал(а):А нету в вб такого понятие, как нажатие на левую и правую кноки одновременно, vbLeftButton - есть, vbRightButton - тоже есть, даже vbMiddleButton есть, а вот vbLeftAndRightButton нет, так что твой совет с цифрой 3 (я так понимаю, сложение vbLeftButton и vbRightButton) не имеет никакого смысла
Ruslan Demidow писал(а):xolod писал(а):А нету в вб такого понятие, как нажатие на левую и правую кноки одновременно, vbLeftButton - есть, vbRightButton - тоже есть, даже vbMiddleButton есть, а вот vbLeftAndRightButton нет, так что твой совет с цифрой 3 (я так понимаю, сложение vbLeftButton и vbRightButton) не имеет никакого смысла
У триггера есть только два положения: включено/выключено.
То же самое с кнопками мыши. Как ты представляешь себе значение сигнала, что нажаты обе кнопки одновременно?
Option Explicit
' /////////////////////////////////////////////////////////////////////////////
Private PressedButtons As Integer
' /////////////////////////////////////////////////////////////////////////////
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
PressedButtons = PressedButtons + Button
If PressedButtons < 0 Then PressedButtons = 0
Call Check_Buttons
End Sub
' /////////////////////////////////////////////////////////////////////////////
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
PressedButtons = PressedButtons - Button
If PressedButtons < 0 Then PressedButtons = 0
Call Check_Buttons
End Sub
' /////////////////////////////////////////////////////////////////////////////
Private Sub Check_Buttons()
Dim Z As Long
Me.List1.Clear
For Z = 0 To 15
If (PressedButtons And (2 ^ Z)) > 0 Then Me.List1.AddItem "Button " & Z + 1
Next Z
End Sub
xolod писал(а):А нету в вб такого понятие, как нажатие на левую и правую кноки одновременно, vbLeftButton - есть, vbRightButton - тоже есть, даже vbMiddleButton есть, а вот vbLeftAndRightButton нет, так что твой совет с цифрой 3 (я так понимаю, сложение vbLeftButton и vbRightButton) не имеет никакого смысла
Сейчас этот форум просматривают: Google-бот и гости: 22