wykrywanie kolorów pikseli

0

witam, mam problem otóż chciałem napisać program którego zadaniem by było wykrywanie koloru piksela na środku ekranu, napisałem niestety nie działa, przedmiotem testowania był program GIMP. W GIMPie zamalowałem całą kartkę na czerwono mimo tego w konsoli pokazuje 255, 255, 255(biały)

C

#include <windows.h>
#include <gdiplus.h>
#include <iostream>
using namespace std;

const int SCREEN_X =( 1024 / 2 );
const int SCREEN_Y =( 768 / 2 );

int main( void )
{
    // pixel detect
    HWND hWnd;
    hWnd = FindWindowA( NULL, "Edytor obrazów GIMP" );
    cout << "Waiting for window." << endl;
    while( hWnd == 0 )
    {
        hWnd = FindWindowA( NULL, "Edytor obrazów GIMP" );
        Sleep( 10 );
    }
    
    cout << "there is a window";
    HDC hdc = GetWindowDC( hWnd );
    short int R, G, B;
    COLORREF lcolor;
    lcolor = GetPixel( hdc, SCREEN_X, SCREEN_Y );
    R = GetRValue( lcolor );
    G = GetGValue( lcolor );
    B = GetBValue( lcolor );
    cout << R << ", " << G << ", " << B << endl;
    cin.get();
    return 0;
}

o jest przyczyną?

0

Okienko "Edytor obrazów GIMP" zawiera w sobie inne okienko a tamte inne i dopiero okienko na którymś tam poziomie zawiera obrazek.
Narysuj sobie drzewko okienek pod tym głównym. Sądzę że domyślisz się które to z nazwy klasy.

0

no tak, że wcześniej na to nie wpadłem, kiedy tworze obraz, tworzy się drugie okienko o innej nazwie, już wiem, dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1