Alt Pencere Güncelleştirme Bölgesi
Alt pencere, WS_CHILD veya WS_CHILDWINDOW stiline sahip bir penceredir. Diğer pencere stilleri gibi alt pencereler de güncelleştirme isteğinde bulunabilmek için WM_PAINT iletileri alır. Her alt pencerenin, sistemin veya uygulamanın son WM_PAINT iletileri oluşturmak üzere ayarlayabildiği bir güncelleştirme bölgesi vardır.
Alt pencerenin güncelleştirmesi ve görünür bölgeler çocuğun üst penceresinden etkilenir; bu, diğer stillerin pencereleri için geçerli değildir. Sistem genellikle üst pencerenin güncelleştirme bölgesini ayarlarken alt pencerenin güncelleştirme bölgesini ayarlar ve üst pencere bunları aldığında alt pencerenin WM_PAINT iletileri almasına neden olur. Sistem, alt pencerenin görünür bölgesinin konumunu üst pencerenin istemci alanı içinde sınırlar ve üst pencerenin dışına taşınan alt pencerenin herhangi bir bölümünü klipler.
Üst pencerenin güncelleştirme bölgesinin bir bölümü alt pencerenin bir bölümünü içerdiğinde sistem bir alt pencere için güncelleştirme bölgesini ayarlar. Bu gibi durumlarda, sistem önce üst pencereye bir WM_PAINT iletisi gönderir ve ardından alt pencereye bir ileti gönderir ve alt pencerenin üst öğe tarafından çizilmiş olabilecek bölümlerini geri yüklemesine olanak sağlar.
Çocuk ayarlandığında sistem üst öğesinin güncelleştirme bölgesini ayarlamaz. Bir uygulama, alt pencereyi geçersiz kılarak üst pencere için WM_PAINT iletisi oluşturamaz. Benzer şekilde, bir uygulama, üst öğe istemci alanının tamamen alt pencerenin altında yer alan bir bölümünü geçersiz kılarak alt öğe için WM_PAINT iletisi oluşturamaz. Böyle durumlarda, hiçbir pencere WM_PAINT iletisi almaz.
Bir uygulama, üst pencere oluşturulurken WS_CLIPCHILDREN stilini belirterek alt pencerenin güncelleştirme bölgesinin üst pencere ayarlandığında ayarlanmasını engelleyebilir. Bu stil ayarlandığında, sistem alt pencereleri üst öğesinin görünür bölgesinden dışlar ve bu nedenle alt pencereleri içerebilecek güncelleştirme bölgesinin herhangi bir bölümünü yoksayar. Uygulama üst pencereye boyandığında, alt pencereyi kaplayacak tüm çizimler kırpılır ve alt pencereye sonraki bir WM_PAINT iletisi gereksiz olur.
Bir alt pencerenin güncelleştirmesi ve görünür bölgeleri de alt pencerenin eşdüzeylerinden etkilenir. Eşdüzey pencereler, ortak üst penceresi olan tüm pencerelerdir. Eşdüzey pencereler çakışıyorsa, birinin güncelleştirme bölgesini ayarlamak diğerinin güncelleştirme bölgesini etkiler ve WM_PAINT iletilerinin her iki pencereye de gönderilmesine neden olur. Üst zincirdeki bir pencere birleşikse (WX_EX_COMPOSITED içeren bir pencere), eşdüzey pencereler WM_PAINT iletileri Z düzenindeki konumlarının ters sırasına göre alır. Bunu göz önünde bulundurarak, Z düzenindeki en yüksek pencere (en üstte) en son WM_PAINT iletisini alır ve tam tersi de geçerlidir. Üst zincirdeki bir pencere birleşik değilse, eşdüzey pencereler WM_PAINT iletileri Z sırasına göre alır.
Eşdüzey pencereler otomatik olarak kırpılmaz. Çizen pencerenin Z sırası daha düşük olsa bile, bir eşdüzey başka bir örtüşen eşdüzey üzerine çizim yapabilir. Bir uygulama, pencereleri oluştururken WS_CLIPSIBLINGS stilini belirterek bunu önleyebilir. Bu stil ayarlandığında, çakışan eşdüzey pencerenin Z sırasında daha yüksek bir konumu varsa, sistem örtüşen eşdüzey pencerenin tüm bölümlerini pencerenin görünür bölgesinden dışlar.
Not
WS_POPUP veya WS_POPUPWINDOW stiline sahip pencereler için güncelleştirme ve görünür bölgeler üst pencerelerinden etkilenmez.