1

ピクチャボックスに線/正方形を描画するアプリケーションがあります。また、2 番目のポイントの位置を取得するために、(正方形/線を描画した後) ピクチャ ボックスの特定のポイントをクリックする必要があります。ただし、マウス ダウン イベントは 2 回目のクリックでは機能しません。私のコードは次のとおりです。

Dim m_Drawing As Boolean
'm_Drawing = False
Dim m_Startx As Single
Dim m_Starty As Single
Dim m_endx As Single
Dim m_endy As Single
Dim square_click As Boolean
'square_click = False
Dim line_click As Boolean
'line_click = False
Dim bclick As Boolean
'blick = True
Dim startx As Single
Dim starty As Single
Dim endx As Single
Dim endy As Single
Dim laserx_mm As Single
Dim lasery_mm As Single
Dim rectx_mm As Single
Dim recty_mm As Single
Dim xpos As Single
Dim ypos As Single
Dim uxpos As Single
Dim uypos As Single
Dim dist As Single
Dim dist1 As Single

Private Sub Command1_Click()
square_click = True
End Sub

Private Sub Command2_Click()
line_click = True
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim diffx As Single
Dim diffy As Single

Picture1.Cls
If m_Startx = 0 And m_Starty = 0 Then
m_Startx = X
m_Starty = Y
'End If
startx = X
starty = Y
rectx_mm = X
recty_mm = Y
'move to start position
ElseIf m_Startx <> 0 And m_Starty <> 0 Then
laserx_mm = X
lasery_mm = Y

diffx = rectx_mm - laserx_mm
diffy = recty_mm - lasery_mm

dist = xpos + (diffx / 4.74 / 1000)
dist1 = ypos - (diffy / 4.68 / 1000)

End If
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
endx = X
endy = Y
m_endx = X
m_endy = Y
If square_click = True Then
Picture1.Line (m_Startx, m_Starty)-(endx, endy), vbWhite, B
ElseIf line_click = True Then
Picture1.Line (m_Startx, m_Starty)-(endx, endy), vbWhite
End If
End Sub

コード:ElseIf m_Startx <> 0 And m_Starty <> 0

そこにブレークポイントを配置しない限り、実行されるまで実行されません。なぜこれが起こっているのかわかりません。私を助けてください!私が十分に明確だったことを願っています!ありがとう。

4

1 に答える 1

1

私はDebug.Print "Here I am"あなたの中に電話をかけElseIf m_Startx <> 0 And m_Starty <> 0ました...2回目のクリックで魅力のように機能します。おそらく、より暗い色または太い線を使用したい場合がありますか? 白線はかなり見にくいです。

于 2012-07-12T12:12:18.520 に答える