Windows APIメモ GetPixel
Windows APIのメモ。
GetPixel。
function GetPixel(DC: HDC; X, Y: Integer): COLORREF; stdcall;
X, Yはクライアント座標。
var
lpt_Pos: TPoint;
lh_WND: HWND;
lh_DC: HDC;
li_Color: COLORREF;
begin
GetCursorPos(lpt_Pos);
lh_WND := WindowFromPoint(lpt_Pos);
lh_DC := GetDC(lh_WND);
Windows.ScreenToClient(lh_WND, lpt_Pos);
li_Color := GetPixel(lh_DC, lpt_Pos.X, lpt_Pos.Y);
if (lh_Color <> CLR_INVALID) then
begin
Beep;
Label1.Color := li_Color;
end;
ReleaseDC(lh_WND, lh_DC);
クライアント領域外の色は取得できません。
例えば上の例では、タイトルバーやメニューバー、フォームのフレームなどはクライアント領域外なのでNG 。