Achtergrond van venster
De achtergrond van het venster is de kleur of het patroon dat wordt gebruikt om het clientgebied te vullen voordat een venster begint met tekenen. De achtergrond van het venster behandelt wat er op het scherm stond voordat het venster daar werd verplaatst, bestaande afbeeldingen wist en verhindert dat de nieuwe uitvoer van de toepassing wordt gemengd met niet-gerelateerde informatie.
Het systeem schildert de achtergrond voor een venster of geeft het venster de mogelijkheid om dit te doen door het een WM_ERASEBKGND bericht te verzenden wanneer de toepassing BeginPaint-aanroept. Als een toepassing het bericht niet verwerkt maar doorgeeft aan DefWindowProc-, wordt de achtergrond gewist door het systeem te vullen met het patroon in de achtergrondborstel die is opgegeven door de klasse van het venster. Als de borstel niet geldig is of de klasse geen achtergrondborstel heeft, stelt het systeem de lid in de PAINTSTRUCT- structuur die BeginPaint retourneert, maar voert geen andere actie uit. De toepassing heeft vervolgens een tweede kans om de achtergrond van het venster te tekenen, indien nodig.
Als het WM_ERASEBKGNDverwerkt, moet de toepassing de wParam parameter van het bericht gebruiken om de achtergrond te tekenen. Deze parameter bevat een ingang voor de weergaveapparaatcontext voor het venster. Nadat de achtergrond is getekend, moet de toepassing een niet-nulwaarde retourneren. Dit zorgt ervoor dat BeginPaint- de lid van de PAINTSTRUCT- structuur niet per ongeluk instelt op een niet-nulwaarde (waarmee wordt aangegeven dat de achtergrond moet worden gewist) wanneer de toepassing het volgende WM_PAINT bericht verwerkt.
Een toepassing kan een klasseachtergrondborstel definiëren door een kwastgreep of een systeemkleurwaarde toe te wijzen aan de hbrBackground lid van de WNDCLASS structuur bij het registreren van de klasse met de functie RegisterClass. De functie GetStockObject of CreateSolidBrush kan worden gebruikt om een kwastgreep te maken. Een systeemkleurwaarde kan een van de waarden zijn die zijn gedefinieerd voor de functie SetSysColors. (De waarde moet met één worden verhoogd voordat deze aan het lid wordt toegewezen.)
Een toepassing kan het WM_ERASEBKGND bericht verwerken, ook al is er een klasachtergrondborstel gedefinieerd. Dit is gebruikelijk in toepassingen waarmee de gebruiker de achtergrondkleur of het patroon van het venster voor een opgegeven venster kan wijzigen zonder dat dit van invloed is op andere vensters in de klasse. In dergelijke gevallen mag de toepassing het bericht niet doorgeven aan DefWindowProc-.
Het is niet nodig voor een toepassing om borstels uit te lijnen, omdat het systeem de borstel tekent met behulp van de vensteroorsprong als referentiepunt. Op basis hiervan kan de gebruiker het venster verplaatsen zonder dat dit van invloed is op de uitlijning van patroonborstels.