Megosztás a következőn keresztül:


Gyermekablak frissítési régiója

A gyermekablak egy WS_CHILD vagy WS_CHILDWINDOW stílusú ablak. A többi ablakstílushoz hasonlóan a gyermekablakok WM_PAINT üzeneteket kapnak a frissítés kéréséhez. Minden gyermekablak rendelkezik frissítési régióval, amelyet a rendszer vagy az alkalmazás állíthat be, hogy végleges WM_PAINT üzeneteket generáljon.

A gyermekablak frissítésére és a látható régiókra hatással van a gyermek szülőablaka; ez más stílusok ablakaira nem igaz. A rendszer gyakran beállítja a gyermekablak frissítési régióját, amikor beállítja a szülőablak frissítési régióját, így a gyermekablak WM_PAINT üzeneteket kap, amikor a szülőablak fogadja őket. A rendszer a gyermekablak látható régiójának helyét a szülőablak ügyfélterületén belülre korlátozza, és a gyermekablak bármely részét a szülőablakon kívülre helyezi.

A rendszer beállítja a gyermekablak frissítési régióját, ha a szülőablak frissítési régiójának egy része tartalmazza a gyermekablak egy részét. Ilyen esetekben a rendszer először egy WM_PAINT üzenetet küld a szülőablakba, majd egy üzenetet küld a gyermekablakba, lehetővé téve a gyermek számára, hogy visszaállítsa az ablak azon részeit, amelyeket a szülő esetleg áthúzott.

A rendszer nem állítja be a szülő frissítési régióját a gyermek beállításakor. Az alkalmazás nem tud WM_PAINT üzenetet létrehozni a szülőablakhoz a gyermekablak érvénytelenítésével. Hasonlóképpen, az alkalmazás nem tud WM_PAINT üzenetet létrehozni a gyermek számára, ha érvényteleníti a szülő ügyfélterületének egy részét, amely teljes egészében a gyermekablak alatt található. Ilyen esetekben egyik ablak sem kap WM_PAINT üzenetet.

Egy alkalmazás megakadályozhatja, hogy a gyermekablak frissítési régiója be legyen állítva a szülőablak beállításakor a szülőablak létrehozásakor a WS_CLIPCHILDREN stílus megadásával. Ha ez a stílus be van állítva, a rendszer kizárja a gyermekablakokat a szülő látható régiójából, ezért figyelmen kívül hagyja a frissítési régió azon részét, amely tartalmazhatja a gyermekablakokat. Amikor az alkalmazás a szülőablakban fest, a gyermekablakot lefedő rajzok ki lesznek vágva, így szükségtelenné válik egy későbbi WM_PAINT üzenet a gyermekablakba.

A gyermekablak frissítésére és látható területeire a gyermekablak testvérei is hatással vannak. A testvérablakok olyan ablakok, amelyeknek közös szülőablakuk van. Ha a testvérablakok átfedésben vannak, akkor az egyik frissítési régiójának beállítása hatással van a másik frissítési régiójára, ami WM_PAINT üzeneteket küld mindkét ablaknak. Ha a szülőlánc egy ablaka összetett (WX_EX_COMPOSITED ablak), a testvérablakok WM_PAINT üzeneteket kapnak a Z sorrendben elfoglalt helyük fordított sorrendjében. Ennek köszönhetően a Z sorrendben (felül) legmagasabb ablak megkapja a WM_PAINT üzenetét, és fordítva. Ha a szülőlánc egy ablaka nem összetett, a testvérablakok Z sorrendben kapnak WM_PAINT üzeneteket.

A testvérablakok nem lesznek automatikusan kivágva. Az egyik testvér akkor is rajzolhat egy másik átfedésben lévő testvért, ha a rajzolt ablak z sorrendben alacsonyabb pozícióval rendelkezik. Az alkalmazások ezt megakadályozhatják, ha megadják a WS_CLIPSIBLINGS stílust az ablakok létrehozásakor. Ha ez a stílus be van állítva, a rendszer kizárja az átfedésben lévő testvérablak minden részét az ablak látható régiójából, ha az átfedésben lévő testvérablak magasabb pozícióval rendelkezik a Z sorrendben.

Jegyzet

A WS_POPUP vagy WS_POPUPWINDOW stílussal rendelkező ablakok frissítésére és látható régióira a szülőablakok nem lesznek hatással.