Sdílet prostřednictvím


Pozadí okna

Pozadí okna je barva nebo vzor použitý k vyplnění klientské oblasti před zahájením kreslení okna. Pozadí okna pokrývá všechno, co bylo na obrazovce předtím, než se okno přesunulo, vymaže existující obrázky a zabrání tomu, aby se nový výstup aplikace směšoval s nesouvisejícími informacemi.

Systém vykresluje pozadí okna nebo dává oknem příležitost k tomu, aby to udělal odesláním WM_ERASEBKGND zprávy, když aplikace volá BeginPaint. Pokud aplikace zprávu nezpracuje, ale předá ji DefWindowProc, systém vymaže pozadí vyplněním vzoru v štětci na pozadí určeném třídou okna. Pokud štětec není platný nebo třída nemá žádný štětec pozadí, systém nastaví fErase člen ve struktuře PAINTSTRUCT, která BeginPaint vrátí, ale neprovádí žádnou jinou akci. Aplikace pak má druhou šanci nakreslit pozadí okna v případě potřeby.

Pokud zpracovává WM_ERASEBKGND, aplikace by měla k vykreslení pozadí použít parametr zprávy wParam. Tento parametr obsahuje popisovač kontextu zařízení pro zobrazení okna. Po nakreslení pozadí by aplikace měla vrátit nenulovou hodnotu. Tím se zajistí, že BeginPaint chybně nenastaví fErase člen struktury PAINTSTRUCT na nenulovou hodnotu (označující, že pozadí by mělo být vymazáno), když aplikace zpracuje následující WM_PAINT zprávu.

Aplikace může definovat štětec třídy pozadí přiřazením úchytu štětce nebo systémové barevné hodnoty hbrBackground člen WNDCLASS struktury při registraci třídy pomocí RegisterClass funkce. Funkci GetStockObject nebo CreateSolidBrush lze použít k vytvoření úchytu štětce. Hodnota barvy systému může být jedna z těch, které jsou definovány pro funkci SetSysColors. (Hodnota musí být zvýšena o jednu před tím, než je přiřazena členovi.)

Aplikace může zpracovat WM_ERASEBKGND zprávu, i když je definován štětec třídy na pozadí. To je typické v aplikacích, které uživateli umožňují změnit barvu nebo vzor pozadí okna pro zadané okno, aniž by to ovlivnilo jiná okna ve třídě. V takových případech nesmí aplikace předat zprávu DefWindowProc.

Není nutné, aby aplikace zarovná štětce, protože systém nakreslí štětec pomocí štětce původu okna jako bod odkazu. Vzhledem k tomu může uživatel okno přesunout, aniž by to ovlivnilo zarovnání vzorových štětců.