まずPictureBoxの名前をPic1に変更
Backcolorを白にします。
途中の円を点線にするにはまだ出来ませんが途中の色を赤にして
完了すると黒にするやり方は以下でどうですか。
AX BY MouseDownで開始する座標
BX BY MouseMoveでドラッグ中のマウス座標
CX CY は円の中心
R 半径
MD 0 = 開始以前
1 = ドラッグ中
クリックにイベントを発生させるとうまくいかないのでMouseUpを使います
完成した円は別にデータとして記憶しないと別の作業で削除されます。
(この部分のプログラムは作成していません)
以下が私の作成してテストプログラムです。
Private Sub Form_Load()
MD = 0
AX = -1
AY = -1
End Sub
Private Sub Pic1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If MD = 0 Then
AX = X
AY = Y
MD = 1
End If
End Sub
Private Sub Pic1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If MD = 1 Then
Pic1.Circle (CX, CY), R, RGB(255, 255, 255)
BX = X
BY = Y
CX = (AX + BX) / 2
CY = (AY + BY) / 2
R = Sqr((CX - BX) ^ 2 + (CY - BY) ^ 2)
Pic1.Circle (CX, CY), R, RGB(255, 0, 0)
End If
End Sub
Private Sub Pic1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If MD = 1 Then
Pic1.Circle (CX, CY), R, RGB(255, 255, 255)
BX = X
BY = Y
CX = (AX + BX) / 2
CY = (AY + BY) / 2
R = Sqr((CX - BX) ^ 2 + (CY - BY) ^ 2)
Pic1.Circle (CX, CY), R, RGB(0, 0, 0)
End If
MD = 0
AX = -1
AY = -1
End Sub
補足
ご回答ありがとうございます。 おっしゃる通り、Dimしたら軌跡は残らなくなりました。 でも、1つ円を書いた後に2つ目を描こうとすると、1つ目が消えてしまいます。 消えないようにできないのでしょうか?