GetPixel(), alternatywa

GR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

mam problem z GetPixel(), nie działa - zawsze zwraca wartość $FFFFFFFF

Kopiuj
 GetCursorPos(MP);
  //Han:= FindWindow(nil, 'Kalkulator');
  Han := WindowFromPoint(MP);
  if Han = 0 then
    Close();
  kolor:= GetPixel(Han,MP.X,MP.Y);
  if ColorToString(kolor)<>'$FFFFFFFF' then
    Memo1.Lines.Add(ColorToString(kolor)); 

no i Memo jest puste... próbowałem wartości x i y od -1000 do +1000 każdy piksel i jest tak samo :)

z tego co wyczytałem w necie są problemy z funkcją pod win 7 i zapewne o to tutaj chodzi (próbowałem tryby zgodności)

potrzebuje podobnie działającej funkcji lub pomocy z GetPixelem

z góry dziękuje za odpowiedzi

Opi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1034
0

Twoja funkcja przechodzi dalej, gdy nie znaleziono uchwytu. Sprawdź, czy poprawnie pobierasz ten uchwyt (czy coś zwraca).

GR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0
Opi napisał(a)

Twoja funkcja przechodzi dalej, gdy nie znaleziono uchwytu. Sprawdź, czy poprawnie pobierasz ten uchwyt (czy coś zwraca).

z tego co mi wiadomo gdy nie znajdzie uchwytu to hwnd = 0
dodałem warunek...
coś jest źle? testowałem

  • Rejestracja: dni
  • Ostatnio: dni
0

RTFM, do cholery, GetPixel wcale nie przyjmuje HWND!

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
1

To nie ma być uchwyt okna tylko:

Kopiuj
GetPixel function

The GetPixel function retrieves the red, green, blue (RGB) color value of the pixel at the specified coordinates.
Syntax

COLORREF GetPixel(
  __in  HDC hdc,
  __in  int nXPos,
  __in  int nYPos
);

Parameters

hdc [in]

    A handle to the device context.
nXPos [in]

    The x-coordinate, in logical units, of the pixel to be examined.
nYPos [in]

    The y-coordinate, in logical units, of the pixel to be examined.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.