Fensteranzeigegerätekontexte
Mit einem Fenstergerätekontext kann eine Anwendung überall in einem Fenster zeichnen, einschließlich des Nicht-Clientbereichs. Fenstergerätekontexte werden in der Regel von Anwendungen verwendet, die die WM _ NCPAINT- und WM _ NCACTIVATE-Nachrichten für Fenster mit benutzerdefinierten Nichtclientbereichen verarbeiten. Die Verwendung eines Fenstergerätekontexts wird für keinen anderen Zweck empfohlen.
Eine Anwendung kann einen Fenstergerätekontext abrufen, indem sie die GetWindowDC- oder GetDCEx-Funktion mit der angegebenen DCX _ WINDOW-Option verwendet. Die Funktion ruft einen Fenstergerätekontext aus dem Kontextcache des Anzeigegeräts ab. Ein Fenster, das einen Fenstergerätekontext verwendet, muss es nach dem Zeichnen mithilfe der ReleaseDC-Funktion so schnell wie möglich wieder frei geben. Fenstergerätekontexte befinden sich immer aus dem Cache. Die _ Klassenstile CS OWNDC und _ CS CLASSDC wirken sich nicht auf den Gerätekontext aus.
Wenn eine Anwendung einen Fenstergerätekontext abruft, legt das System den Ursprung des Geräts auf die obere linke Ecke des Fensters statt auf die obere linke Ecke des Clientbereichs fest. Außerdem wird der Ausschneidebereich so definiert, dass er nicht nur den Clientbereich, sondern auch das gesamte Fenster enthält. Das System legt die aktuellen Attributwerte eines Fenstergerätekontexts auf die gleichen Standardwerte fest wie ein gemeinsamer Gerätekontext. Eine Anwendung kann die Attributwerte ändern, aber das System behält keine Änderungen bei, wenn der Gerätekontext freigegeben wird.