前提:我取得了鼠标在屏幕上任意移动时的当前坐标,保存在x,y中,请问我如何才能取得当前点的颜色??

解决方案 »

  1.   

    像下面这样子写,但取到的始终为黑色,晕倒~~~
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      CurDC: HDC;
      CurPoint: TPoint;
      Color: TColor;
    begin
      CurDC := GetDesktopWindow;
      GetCursorPos(CurPoint);
      Color := GetPixel(curdc,CurPoint.x,CurPoint.y);
      text1.color:=color;
    end;
      

  2.   

    这个你试试,哈哈,给我分吧
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      CurDC: HDC;
      CurPoint: TPoint;
      Color: TColor;
    begin
      CurDC := GetDC(GetActiveWindow); //GetDesktopWindow
      GetCursorPos(CurPoint);
      CurPoint := ScreenToClient(CurPoint);
      Color := GetPixel(curdc,CurPoint.x,CurPoint.y);
      Panel1.color:=color;
    end;
      

  3.   

    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      CurDC: HDC;
      CurPoint: TPoint;
      Color: TColor;
    begin
      CurDC := GetDC(0);
      if CurDC <> NULL then
      try
        GetCursorPos(CurPoint);
        Color := GetPixel(CurDC,CurPoint.x,CurPoint.y);
        Panel1.Color:=Color;
        Edit1.Text := '$'+IntToHex(Color, 8);
      finally
        ReleaseDC(0, CurDC);
      end;
    end;
      

  4.   

    试试这个
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      CurDC: HDC;
      CurPoint: TPoint;
      Color: TColor;
    begin
      CurDC := GetDC(GetActiveWindow); //GetDesktopWindow
      GetCursorPos(CurPoint);
      CurPoint := ScreenToClient(CurPoint);
      Color := GetPixel(curdc,CurPoint.x,CurPoint.y);
      Panel1.color:=color;
    end;