มองเห็นหน้าต่าง

หน้าต่างสามารถมองเห็น หรือซ่อน ระบบแสดงหน้าต่างที่ปรากฏบนหน้าจอ มันซ่อนการซ่อนหน้าต่างโดยไม่วาด ถ้าหน้าต่างจะมองเห็นได้ ผู้ใช้สามารถใส่เข้าไปหน้าต่าง และดูผลลัพธ์ของหน้าต่าง ถ้าหน้าต่างถูกซ่อนไว้ จะถูกปิดอย่างมีประสิทธิภาพใช้งาน หน้าต่างที่ซ่อนอยู่สามารถประมวลผลข้อความ จากระบบ หรือ จาก windows อื่น ๆ แต่จะไม่สามารถดำเนินการป้อนข้อมูลจากผู้ใช้ หรือแสดงผลลัพธ์ แอปพลิเคชันตั้งค่าสถานะการมองเห็นของหน้าต่างเมื่อสร้างหน้าต่าง ภายหลัง แอพลิเคชันสามารถเปลี่ยนแปลงสถานะการมองเห็น.

หน้าต่างจะปรากฏเมื่อลักษณะ 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 สำหรับ windows เป็นทั้งหมด และส่งข้อความ WM_SHOWWINDOW ให้เป็น windows ก่อนที่จะซ่อน หรือแสดง การซ่อนหน้าต่างเจ้าของไม่มีผลต่อสถานะการมองเห็นของ windows เป็น.

เมื่อปรากฏหน้าต่างหลักอยู่ windows ของเด็กที่เกี่ยวข้องได้อีกด้วย ในทำนองเดียวกัน เมื่อหน้าต่างหลักจะถูกซ่อนไว้ windows ของเด็กยังซ่อนอยู่ ลดหน้าต่างแม่ไม่มีผลต่อสถานะการมองเห็นของ windows เด็ก กล่าวคือ windows เด็กถูกย่อเล็กสุดพร้อมกับพ่อแม่ แต่ไม่มีการเปลี่ยนแปลงลักษณะ WS_VISIBLE.

แม้ว่าหน้าต่างมีลักษณะ WS_VISIBLE ผู้ใช้อาจไม่สามารถดูหน้าต่างบนหน้าจอ หน้าต่างอื่น ๆ ทั้งหมดอาจเหลื่อมนั้น หรือมันอาจถูกย้ายไปอยู่นอกเหนือขอบของหน้าจอ ยัง หน้าต่างมองเห็นลูกอยู่ภายใต้กฎของรูปวาดก่อตั้ง โดยความสัมพันธ์หลัก-ย่อย ถ้ามองไม่เห็นของหน้าต่างหลักหน้าต่าง มันจะยังไม่สามารถมองเห็น ถ้าหน้าต่างแม่ย้ายที่อยู่นอกเหนือขอบของหน้าจอ หน้าต่างลูกยังย้ายได้เนื่องจากมีลากหน้าต่างลูกสัมพันธ์กับผู้ปกครองมุมบนซ้ายไว้ ตัวอย่างเช่น ผู้ใช้อาจย้ายหน้าต่างหลักที่ประกอบด้วยหน้าต่างลูกไกลพอออกจากขอบของหน้าจอผู้ใช้อาจไม่สามารถดูหน้าต่างลูก แม้ว่าหน้าต่างลูกและหน้าต่างหลักของทั้งสองมีลักษณะ WS_VISIBLE.