Niet-clientgebied
Het systeem verzendt een WM_NCPAINT bericht naar het venster wanneer een deel van het niet-clientgebied van het venster, zoals de titelbalk, menubalk of vensterkader, moet worden bijgewerkt. Het systeem kan ook andere berichten verzenden om een venster te sturen om een deel van het clientgebied bij te werken; Wanneer een venster bijvoorbeeld actief of inactief wordt, wordt het WM_NCACTIVATE bericht verzonden om de titelbalk bij te werken. Over het algemeen wordt het verwerken van deze berichten voor standaardvensters niet aanbevolen, omdat de toepassing alle vereiste onderdelen van het niet-clientgebied voor het venster moet kunnen tekenen. Daarom geven de meeste toepassingen deze berichten door aan DefWindowProc- voor standaardverwerking.
Een toepassing die aangepaste niet-clientgebieden voor de vensters maakt, moet deze berichten verwerken. Als u dit doet, moet de toepassing een vensterapparaatcontext gebruiken om tekening in het venster uit te voeren. Met de -apparaatcontext kan de toepassing in alle delen van het venster tekenen, inclusief het niet-clientgebied. Een toepassing haalt een vensterapparaatcontext op met behulp van de GetWindowDC- of functie GetDCEx. Wanneer tekenen is voltooid, moet de context van het vensterapparaat vrijgeven met behulp van de functie ReleaseDC-.
Het systeem onderhoudt een updateregio voor het niet-clientgebied. Wanneer een toepassing een WM_NCPAINT bericht ontvangt, bevat de parameter wParam een ingang voor een regio die de dimensies van de updateregio definieert. De toepassing kan de greep gebruiken om de updateregio te combineren met de knipregio voor de context van het vensterapparaat. Het systeem combineert de updateregio niet automatisch bij het ophalen van de context van het vensterapparaat, tenzij de toepassing GetDCEx- gebruikt en zowel de regiogreep als de DCX_INTERSECTRGN vlag opgeeft. Als de toepassing de updateregio niet combineert, worden alleen tekenbewerkingen die anders buiten het venster worden uitgebreid, geknipt. De toepassing is niet verantwoordelijk voor het wissen van de updateregio, ongeacht of deze gebruikmaakt van de regio.
Als een toepassing het WM_NCACTIVATE bericht verwerkt, moet na verwerking TRUE- worden geretourneerd om het systeem te leiden om de wijziging van het actieve venster te voltooien. Als het venster wordt geminimaliseerd wanneer de toepassing het WM_NCACTIVATE bericht ontvangt, moet het bericht worden doorgegeven aan DefWindowProc-. In dergelijke gevallen wordt met de standaardfunctie het label voor het pictogram opnieuw getekend.