投稿日 | : 2007/01/25(Thu) 22:40 |
投稿者 | : sakusaku |
Eメール | : |
URL | : |
タイトル | : 画面上のある点の色の取得 |
はじめまして。よろしくお願いします。
画面上のマウスの位置の色を取得したいと思い
いろいろ試しているのですがなかなかうまくいきません
Option Explicit
'位置座標を受け取る構造体
Private Type POINTAPI
x As Long
y As Long
End Type
'現在のマウスカーソルの位置座標を取得する
Private Declare Function GetCursorPos Lib "user32" _
(lpPoint As POINTAPI) As Long
Private MoP As POINTAPI '現在のマウスポインタの位置座標
Private Declare Function GetPixel Lib "gdi32.dll" _
(ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Sub Form_Load()
Timer3.Interval = 500 'ミリ秒で指定
End Sub
Private Sub Timer3_Timer()
Dim MyColor
GetCursorPos MoP
Labelx.Caption = MoP.x
Labely.Caption = MoP.y
MyColor = GetPixel(hdc, MoP.x, MoP.y)
Label4.Caption = MyColor
End Sub
わからない事としましては
hdcに何を入れてやればいいのか?
変数MyColorの型は何にすればいいのか?
現在、このコードを実行すると−1が帰ってきますが
これは何を意味しているのでしょうか?
(たぶんhdcが設定されていないためにきちんとした
値が取れていないって意味だとは思うのですが)
ちなみにhdcをMe.hdcにするとフォーム内で2種類の
値が帰ってきます
よろしくお願いします