Teilen über


Fensteranzeigegerätekontexte

Ein Fenstergerätekontext ermöglicht es einer Anwendung, an einer beliebigen Stelle in einem Fenster zu zeichnen, einschließlich des Nichtclientbereichs. 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 andere Zwecke nicht empfohlen.

Eine Anwendung kann einen Fenstergerätekontext mithilfe der GetWindowDC- oder GetDCEx--Funktion mit der angegebenen option DCX_WINDOW abrufen. Die Funktion ruft einen Fenstergerätekontext aus dem Cache des Anzeigegerätekontexts ab. Ein Fenster, das einen Fenstergerätekontext verwendet, muss es nach der Zeichnung freigeben, indem die ReleaseDC--Funktion so schnell wie möglich verwendet wird. Fenstergerätekontexte stammen immer aus dem Cache; die CS_OWNDC- und CS_CLASSDC Klassenformatvorlagen wirken sich nicht auf den Gerätekontext aus.

Wenn eine Anwendung einen Fenstergerätekontext abruft, legt das System den Geräteursprung auf die obere linke Ecke des Fensters anstelle der oberen linken Ecke des Clientbereichs fest. Außerdem wird der Clippingbereich so festgelegt, dass es das gesamte Fenster enthält, nicht nur den Clientbereich. Das System legt die aktuellen Attributwerte eines Fenstergerätekontexts auf die gleichen Standardwerte wie einen allgemeinen Gerätekontext fest. Eine Anwendung kann die Attributwerte ändern, das System behält jedoch keine Änderungen bei, wenn der Gerätekontext freigegeben wird.