Bildschirmaufösung und Mausposition wird nicht richtig ermittelt!



  • Hallo zusammen!

    Mein kleines Programm soll mit diesen Möglichkeiten die Bildschirm größe ermittel von meinem LED-Fernseher via HDMI. Tja das macht er auch aber bei seiner Standard
    auflösung 1920x1080 negativ gibt er als Auflösung nur 860x540 heraus was mein kleines Prog natürlich total aus der Bahn wirft und selbst die Mausposition wird nicht so richtig erkannt als ob es diese Auflösung garnicht gibt aber trotzdem angezeigt wird! Ich verstehe das nicht mein Prog läuft super auf meinem Lappi aber nicht auf dem Fernseher! Why???
    Hat das mit dem externen Ausgang zu tuhen?

    Methoden:

    /////////////////////////Methoden:1//////////////////////////////////////////////
    
    GetDeviceCaps(whDC,HORZRES);
    GetDeviceCaps(whDC,VERTRES);
    
    ////////////////////////////Methoden:2//////////////////////////////////////////
    
    GetSystemMetrics(SM_CXSCREEN); 
    GetSystemMetrics(SM_CYSCREEN); 
    
    /////////////////////////////Methoden:3/////////////////////////////////////////
    int cxScreen1()
    { 
         int cxScreen1;
         mouse_event(MOUSEEVENTF_MOVE,10000,10000,0,0);
         POINT mPos;
         GetCursorPos(&mPos); 
         cxScreen1=mPos.x;
         DeleteObject(&mPos);
    
         return(cxScreen1);
    
    }
    
    int cyScreen1()
    { 
         int cyScreen1;
         mouse_event(MOUSEEVENTF_MOVE,10000,10000,0,0);
         POINT mPos;
         GetCursorPos(&mPos); 
         cyScreen1=mPos.y;
         DeleteObject(&mPos);
    
         return(cyScreen1);
    
    }
    ////////////////////////////Methoden:4//////////////////////////////////////////
    
    GetSystemMetrics(SM_CXVIRTUALSCREEN);
    GetSystemMetrics(SM_CYVIRTUALSCREEN);
    
    /////////////////////////////Methoden:5///////////////////////////////////////
    
    RECT rc;
                GetWindowRect (GetDesktopWindow (), &rc);  
                cxScreen=rc.right; 
                cyScreen=rc.bottom;
    /////////////////////////////////////////////////////////////////////
    

    Danke schon mal fürs lesen! 😉



  • masterslavemaster schrieb:

    [...] nur 860x540 heraus was mein kleines Prog natürlich total aus der Bahn wirft[code]

    Warum? Da schein ja was nicht mit deinem Program zu stimmen. Außerdem in dem Zusammenhang ganz Intersant: WM_DISPLAYCHANGE

    BTW: Die Vorgehensweise in deiner 'Methode 3' ist Blödsinn - außerdem Missbrauchst du hier DeleteObject().



  • Das Programm funktioniert einwandfrei, die 3.Methode ist eine Möglichkeit kein muss. DeleteObjekt() tja das wusste ich nicht! Aber ich bin hier ein Newbie also muss ich da noch einiges lernen.

    Zum Fehler:
    Bei meinem PC via LED-Fernseher und Windows7 habe ich die DPI auf 200% gestellt.
    Wenn ich denn Hacken bei dem "Windows-XP Modus" mache und mich dann wieder neu anmelde geht alles seinen gewohnten gang. Allerdings wird auch das Bild schlechter und ich kann dann nicht mehr so scharf sehen.
    Er halbier den Bildschirm oder zeigt nur jedes zweite Pixel an mein Prog bekommt diese Änderung aber nicht mit weil die DPI immer noch als 96 ausgegeben werden
    und nicht wie eingestellt 192 DPI. Warum???

    Tja so einfach ist das dann doch nicht!Bis dann...


  • Mod

    Vielleicht solltest Du erstmal verstehen was der DPI Mode bedeutet.
    Er vergrößert weder den Montiro noch verleinert diesen.

    Es verändert nur die Anzahl der physikalischen Pixel die für die Darstellung eines "logischen" Zolls auf dem Monitor vorgesehen sind.

    192dpi heißt das 192 Pixel auf dem Montitor für die Darstelung eines Zolls verwendet werden, d.h. alles wird größer als bei 100%=96 DPI.

    Das Ganze wird aber erst relevant in Programmen, die das auch benutzen.

    Ansonsten bleibt ein Punkt gleich Punkt.



  • Danke!

    Text Größe auf 200%!!!

    😉


Anmelden zum Antworten