投稿日 | : 2007/06/19(Tue) 11:39 |
投稿者 | : アンティニー |
Eメール | : |
URL | : |
タイトル | : マウスが押された位置でのPictureの色を取得したい |
Picture1には、Picture1.CircleやPicture1.Lineで書かれた図形がちりばめられています。
マウスでそれぞれの図形が選択されたら、個々の図形を消すプログラムを作成しております。
Picture1上でマウスが押されたら中央に表示させ、そのポイントの色を識別したいのですが、
下記の様に、gdi32を使ったプログラムをネットでみつけて使ってみましたが、戻り値には
常に-1が帰ってきてしまい、うまく動作しません。
GetColor = GetPixel(Picture1, X, Y)
---------------------------------------------------------------------------------------
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, _
ByVal Y As Long) As Long
Private Const LC As Long = &HC0FFFF '比較対象の色
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, _
Y As Single)
Dim GetColor As Long
Dim PadColor As Long
Picture1.ScaleLeft = X - (Picture1.ScaleWidth / 2)
Picture1.ScaleTop = Y - (Picture1.ScaleHeight / 2)
GetColor = GetPixel(Picture1, X, Y)
PadColor = Val(LC)
If GetColor = PadColor Then
Debug.Print "線"
Else
Debug.Print "以外"
End If
Picture1.Refresh
Call Command1_Click
End Sub