投稿日 | : 2007/06/04(Mon) 14:23 |
投稿者 | : なな |
Eメール | : |
URL | : |
タイトル | : 楕円が選択されるとフォーカスを当てたい |
お世話になります。
VB歴3年のPGです。
環境:VB6(SP5) WinXp
PictureBox上に楕円を描いています。描いた楕円上を選択している場合、フォーカスを当てる処理を行いたいです。
やりたい事は、Excel上で絵を描いたときのイメージと同じ感じです。
@までは、Vbで作成済みですが、Aの処理で悩んでいます。
@オートシェープの楕円を選び、楕円を描きます。
A楕円上が選択されている場合、フォーカスが当たって(○でを8箇所で囲んでいる)います。
※実際に試す時は、@の後にオートシェープの書式設定で、色を「塗りつぶしなし」を選びます。
「特に、楕円が選択されているか?」という判定をどのように行えば良いか分かりません。
@の楕円を描く処理は、以下の通りです。
--------------------------------------------------------
Dim UpX1 As Long
Dim UpX2 As Long
Dim UpY1 As Long
Dim UpY2 As Long
Dim UpX3 As Long
Dim UpY3 As Long
Dim booFlg As Boolean
Private Sub Form_Load()
Picture1.ScaleMode = 3
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
booFlg = True
UpX1 = X
UpY1 = Y
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If booFlg = True Then
UpX3 = X
UpY3 = Y
Picture1.Refresh
Ellipse Picture1.hDC, UpX1, UpY1, UpX3, UpY3
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
UpX2 = X
UpY2 = Y
If booFlg = True Then
Picture1.Refresh
Ellipse Picture1.hDC, UpX1, UpY1, UpX2, UpY2
booFlg = False
End If
End Sub
'楕円を描画するAPI
Declare Function Ellipse Lib "gdi32" ( _
ByVal hDC As Long, _
ByVal Left As Long, _
ByVal Top As Long, _
ByVal Right As Long, _
ByVal Bottom As Long) As Long