Pencere görünürlüğü

Bir pencere görünür veya gizli olabilir. Sistem, ekranda Görünen pencerede görüntüler. O bir gizli pencere , o çizerek değil gizler. Bir pencere görünür durumdaysa, kullanıcı giriş penceresine tedarik ve pencerenin çıktı görüntüleyin. Bir pencere gizliyse, etkili şekilde devre dışı bırakılır. Gizli pencere sisteminden veya diğer Windows iletilerini işleyebilir ancak kullanıcı girişi işleme veya çıktısını gösterir. Uygulama penceresi oluşturulurken pencerenin görünürlük durumunu ayarlar. Daha sonra uygulama görünürlük durumunu değiştirebilirsiniz.

WS_VISIBLE stili pencere için ayarlandığında bir pencere görünür durumdadır. WS_VISIBLE stili uygulama belirtmediği sürece varsayılan olarak gizli pencere CreateWindowEx işlevi oluşturur. Tipik olarak, kullanıcıdan gizli oluşturma işleminin ayrıntılarını korumak için bir pencere oluşturduktan sonra uygulama WS_VISIBLE stilini ayarlar. Örneğin, bir uygulamanın yeni bir pencere pencere görünümü özelleştirir gizli tutar. WS_VISIBLE stili CreateWindowExbelirtilirse, sistem WM_SHOWWINDOW ileti penceresine pencere oluşturduktan sonra ancak görüntülemeden önce gönderir.

Bir uygulama bir pencere görünür olup olmadığını IsWindowVisible işlevini kullanarak belirleyebilirsiniz. Uygulama (yapmak görünür) gösterip ShowWindow, SetWindowPos, DeferWindowPosveya SetWindowPlacement işlevini kullanarak bir pencere gizleyebilirsiniz. Bu işlevler gösterip ayarlayarak veya pencereyi WS_VISIBLE stili kaldırma pencereyi gizleyebilirsiniz. Onlar da WM_SHOWWINDOW pencereyi gösterme ya da gizleme daha önce göndermek.

Bir sahibi pencere küçültüldüğünde, sistem otomatik olarak ilişkili windows ait gizler. Bir sahibi pencere geri benzer şekilde, sistem otomatik olarak ilişkili windows ait gösterir. Her iki durumda da, sistem WM_SHOWWINDOW iletiyi gönderir sahipli windows gizleme veya gösterme onları önce. Bazen, bir uygulamanın en aza indirmek veya sahibi gizlemek zorunda kalmadan sahipli windows gizlemek gerekebilir. Bu durumda, uygulama ShowOwnedPopups işlevini kullanır. Bu işlev ayarlar veya tüm sahipli windows WS_VISIBLE stili kaldırır ve gizleme veya gösterme onları önce sahipli windows WM_SHOWWINDOW iletiyi gönderir. Bir sahibi penceresini gizleme sahipli windows görünürlük durumunu etkilemez.

Bir üst pencere görünür olduğunda ilişkili alt pencereleri da görünür. Benzer şekilde, üst pencere gizli olduğunda, onun alt pencereleri de gizlidir. Ana pencerenin simge durumuna küçültülmesi alt pencereleri görünürlük durumunu etkilemez; Yani, alt pencereleri ile birlikte üst simge ancak WS_VISIBLE stili değişmez.

WS_VISIBLE tarzı bir pencere olsa bile, kullanıcı pencereyi ekranda görmek mümkün olmayabilir; diğer pencereleri tamamen çakışabilir veya ekranın kenarına taşınmış olabilir. Ayrıca görünen alt pencere onun üst-alt ilişkisi tarafından kurulan kırpma kurallara tabidir. Pencerenin üst pencere görünmüyorsa, bunu da görünür olmaz. Ana pencere ekranın kenarına taşır, çünkü bir alt pencereyi üst sol üst köşesinde göreceli olarak çizilir alt pencere de taşınır. Örneğin, bir kullanıcı alt pencere yeterince uzakta düz-se bile hem WS_VISIBLE stili var, çocuk ve onun ana penceresinde kullanıcı alt pencereyi görmek mümkün olmayabilir ekranın kenarına içeren üst pencere taşıyabilir.