VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -