ホーム >プログラム >Delphi 6 ローテクTips

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 。