ClientToScreen/ScreenToClient



  • COLORREF PixelGetColor(int xpos,int ypos) {
    HWND hWndxy = GetForegroundWindow();
    ClientToScreen();
    HDC hDC = GetDC(hWndxy);
    COLORREF Farbe = GetPixel(hDC, xpos, ypos);
    ReleaseDC(hWndxy,hDC);
    return Farbe;
    }

    hallo das ist meine funktion
    aber die lest ja nur übern desktop aus
    wie kann ich machen das er von den fenster die coords dann nimmt
    zb wenn ich

    PixelGetColor(100,100);
    dann gibt er mir die farbe von pos : 100,100 zurück aber wenn ich nun
    100,100 von nen bestimmten fenster haben mag (das offen ist)
    kann man das dann mit ClientToScreen oder ScreenToClient machen ?
    und ein bsp bitte

    mfG,
    Help Me



  • hi,

    em hast du dir ScreenToClient in der MSDN überhaupt mak angeguckt ?

    Naja so sollte es funzen:

    COLORREF PixelGetColor(int xpos,int ypos)
    {
        HWND hWndxy = GetForegroundWindow();
        POINT ptDest = { xpos, ypos };
        ScreenToClient(hWndxy, &ptDest);
        HDC hDC = GetDC(hWndxy);
        COLORREF Farbe = GetPixel(hDC, ptDest.x, ptDest.y);
        ReleaseDC(hWndxy,hDC);
    
        return Farbe;
    }
    


  • geht noch immer nicht
    er nimmt immer noch die x/y coords vom desktop und nicht von offenen fenster



  • Help Me schrieb:

    geht noch immer nicht
    er nimmt immer noch die x/y coords vom desktop und nicht von offenen fenster

    Meinst du, das man ihm Client-Koordinaten übergibt, oder das du ihm Screen-Koordinaten gibst und er
    diese autom. aufs akuelle (Foreground)-Fenster umrechnet ?



  • Screen-Koordinaten gibst und er
    diese autom. aufs akuelle (Foreground)-Fenster umrechnet ?

    genau das mein ich



  • *sry for double post

    wie könnte das dann funktionieren auch mit ScreenToClient ?
    oder gibts da eigene funktion dafür ?
    *könnte die jemand posten btw beispiel.


Anmelden zum Antworten