חלון התצוגה

חלון יכולה להיות גלויה או מוסתרת. המערכת תציג חלון גלוי על המסך. היא מסתירה את החלון מוסתרים לא תצייר אותה. אם חלון גלוי, המשתמש יוכל לספק קלט לחלון ולהציג הפלט של החלון. אם החלון מוסתרת, אינו יעיל זמין. חלון מוסתר יכול לעבד הודעות המערכת או חלונות אחרים, אך אינו יכול לעבד קלט מהמשתמש או להציג פלט. יישום מגדיר את מצב התצוגה של חלון בעת יצירת החלון. מאוחר יותר, היישום יכול לשנות את מצב התצוגה.

חלון גלוי כאשר סגנון WS_VISIBLE מוגדר עבור החלון. כברירת מחדל, הפונקציה CreateWindowEx יוצרת חלון נסתר אלא אם היישום מציין את סגנון WS_VISIBLE. בדרך כלל, יישום הגדרת סגנון WS_VISIBLE לאחר שהוא יצר חלון כדי לשמור על הפרטים של תהליך יצירת מוסתרים מהמשתמש. לדוגמה, יישום עלול להשאיר חלון חדש מוסתרים בעת התאמה אישית של המראה של החלון. אם הסגנון WS_VISIBLE מצוין CreateWindowEx, המערכת שולחת את ההודעה WM_SHOWWINDOW אל החלון לאחר יצירת החלון, אך לפני הצגת.

יישום לקבוע אם חלון גלוי על-ידי שימוש בפונקציה IsWindowVisible . יישום (יצירת גלויות) להציג או להסתיר את חלון על-ידי שימוש בפונקציה מסוג ShowWindow, SetWindowPos, DeferWindowPosאו SetWindowPlacement . פונקציות אלה הצג או הסתר חלון על-ידי הגדרה או הסרה של הסגנון WS_VISIBLE של החלון. הם גם לשלוח את ההודעה WM_SHOWWINDOW החלון לפני הצגה או הסתרה של אותו.

כאשר חלון בעלים ממוזער, המערכת מסתיר באופן אוטומטי המשויך בבעלות windows. באופן דומה, בעת שחזור חלון בעלים, המערכת באופן אוטומטי מציג המשויך בבעלות windows. בשני המקרים, המערכת שולחת את ההודעה WM_SHOWWINDOW בבעלות של windows לפני הסתרה או הצגה של אותם. מדי פעם, יישום עליך להסתיר את החלונות בבעלות מבלי למזער או להסתיר את הבעלים. במקרה זה, היישום משתמש בפונקציה ShowOwnedPopups . פונקציה זו מגדירה או מסירה את סגנון WS_VISIBLE עבור כל החלונות בבעלות ושולח את ההודעה WM_SHOWWINDOW בבעלות של windows לפני הסתרה או הצגה של אותם. הסתרת חלון בעלים אינה משפיעה על מצב התצוגה של windows בבעלות.

כאשר חלון אב גלוי, חלונותיו צאצא משויכות גם נראים לעין. באופן דומה, כאשר חלון האב מוסתרת, גם מוסתרים חלונות צאצאים שלו. מזעור חלון האב יש השפעה על מצב התצוגה של windows הילד; כלומר, חלונות צאצאים ממוזערים יחד עם האב, אך לא שינוי סגנון WS_VISIBLE.

אפילו אם חלון יש את הסגנון WS_VISIBLE, המשתמש ייתכן שלא תוכל לראות את החלון על המסך; חלונות אחרים עשוי לחפוף אותו לחלוטין או עשויים להיות מועברים מעבר לקצה המסך. כמו כן, חלון צאצא גלוי הוא כפוף לכללים מסיכה שהוקם על ידי יחסי אב-בן שלו. אם חלון האב של החלון אינה גלויה, זה גם לא יהיה גלוי. אם החלון האב עובר מעבר לקצה המסך, חלון צאצא עובר גם מכיוון חלון צאצא מצויר ביחס לפינה השמאלית העליונה של האב. לדוגמה, משתמש עשוי להזיז את חלון האב המכיל את חלון צאצא רחוק מספיק מעבר לקצה המסך כי המשתמש ייתכן שלא תוכל לראות את חלון צאצא, אף-על-פי חלון צאצא וחלון האב שלו בשניהם יש את הסגנון WS_VISIBLE.