Verständnisproblem- Unterschied GetDC()<->GetWindowDC() - gelöst



  • Hallo,
    ich habe gerade angefangen mich mit der GDI zu beschäftigen und eine Linie auf den Desktop zu zeichnen, nicht in ein eigenes Fenster.

    zuerst versuchte ich es mit:

    //...
    HDC hdc=GetDC(GetDesktopWindow());
    //...
    

    daraufhin passierte einfach gar nichts und die zu zeichnende Linie erschien auch nicht am Bildschirm.

    dann versuchte ich es mit:

    //...
    HDC hdc=GetWindowDC(GetDesktopWindow());
    //...
    

    damit hat es einwandfrei funktioniert 🙂

    die Frage ist nur warum? wo liegt der Unterschied zwischen GetDC() und GetWindowDC() und wann muss ich welche der 2 Funktionen benutzen?

    danke schonmal,
    andi01.



  • Folgendes funktioniert übrigens auch:

    HDC hDesktopDC=GetDC(0);
    


  • toll, noch eine Möglichkeit mehr xD. jetzt gibt es schon 3 von denen ich weder den Unterschied weiß noch wann ich welche verwenden muss^^

    kann mir bitte mal jemand die Unterschiede und Verwendungszwecke der 3 Möglichkeiten erklären?

    danke,
    andi01.



  • Im gegensatz zu GetDC, welches nur einen DC für den Clientbereich des Fensters liefert, liefert GetWindowDC einen DC für das gesamter Fenster (einschließlich Titelleiste und Rahmen).



  • ok, aber der desktop hat ja keine titelleiste und keinen rahmen. da müsste doch eigentlich beides gehen oder?

    mfg,
    andi01.



  • Da der Desktop eben eine besondere Form eines Fensters ist vermute ich, dass er einfach keinen Anwendungsbereich hat.



  • aso ok. damitis das problem gelöst 🙂

    danke,
    andi01.


Anmelden zum Antworten