มีส่งข้อความ WM_NCCALCSIZE เมื่อขนาดและตำแหน่งของพื้นที่ของไคลเอ็นต์ของหน้าต่างต้องคำนวณ ด้วยการประมวลผลข้อความนี้ แอปพลิเคชันสามารถควบคุมเนื้อหาของพื้นที่ของไคลเอ็นต์ของหน้าต่างเมื่อมีการเปลี่ยนแปลงขนาดหรือตำแหน่งของหน้าต่าง.
WM_NCCALCSIZE fCalcValidRects = wParam (BOOL) / / พื้นที่ถูกต้องการตั้งค่าสถานะ lpncsp = lParam (LPNCCALCSIZE_PARAMS) / / ขนาดคำนวณข้อมูลหรือ lpncsp = lParam (LPRECT) / / ประสานกับหน้าต่างใหม่
ถ้าwParamเป็น FALSE แอพลิเคชันไม่ได้จำเป็นต้องระบุส่วนของพื้นที่ของไคลเอนต์ถูกต้อง.
ถ้าwParamเป็น FALSE, lParamชี้ไป RECTโครงสร้าง โครงสร้างประกอบด้วยสี่เหลี่ยมหน้าต่างที่เสนอสำหรับหน้าต่างบนรายการ เมื่อออกจาก โครงสร้างควรประกอบด้วยพิกัดที่หน้าจอของไคลเอ็นต์พื้นที่ของหน้าต่างที่สอดคล้องกัน.
ถ้าพารามิเตอร์fCalcValidRectsเป็น FALSE แอพลิเคชันควรกลับเป็นศูนย์.
ถ้าfCalcValidRectsเป็น TRUE แอพลิเคชันควรส่งคืนค่าศูนย์หรือการรวมกันของค่าต่อไปนี้:
| ค่า | ความหมาย |
|---|---|
| WVR_ALIGNTOP, WVR_ALIGNLEFT, WVR_ALIGNBOTTOM, WVR_ALIGNRIGHT | |
| ค่าเหล่านี้ ใช้ร่วม ระบุว่า พื้นที่ที่ไคลเอ็นต์ของหน้าต่างคือการรักษา และจัดอย่างเหมาะสมที่สัมพันธ์กับตำแหน่งใหม่ของหน้าต่าง ตัวอย่าง การจัดพื้นที่ไคลเอ็นต์ไปยังมุมล่างซ้าย ส่งคืนค่า WVR_ALIGNLEFT และ WVR_ALIGNBOTTOM. | |
| WVR_HREDRAW, WVR_VREDRAW | |
| ค่าเหล่านี้ ใช้ร่วมกับค่าอื่นใด ทำให้หน้าต่างเพื่อจะวาดใหม่อย่างสมบูรณ์ถ้าการเปลี่ยนแปลงของไคลเอ็นต์สี่เหลี่ยมขนาดตามแนวนอน หรือแนวตั้ง ค่าเหล่านี้จะคล้ายคลึงกับลักษณะคลา CS_HREDRAW และ CS_VREDRAW. | |
| WVR_REDRAW | |
| ค่านี้ทำให้หน้าต่างทั้งหมดจะถูกวาดขึ้นมาใหม่ เป็นการรวมกันของค่า WVR_HREDRAW และ WVR_VREDRAW. | |
| WVR_VALIDRECTS | |
| ค่านี้บ่งชี้ว่า เมื่อกลับจาก WM_NCCALCSIZE สี่เหลี่ยมที่ระบุโดยrgrc [1]และประกอบrgrc [2]สมาชิกของโครงสร้างNCCALCSIZE_PARAMSด้วยปลายทางที่ถูกต้องและแหล่งพื้นที่รูปสี่เหลี่ยม ตามลำดับ ระบบรวมสี่เหลี่ยมเหล่านี้ในการคำนวณพื้นที่ของหน้าต่างเพื่อเก็บรักษาไว้ ระบบคัดลอกส่วนหนึ่งส่วนใดของรูปหน้าต่างที่อยู่ภายในสี่เหลี่ยมต้นฉบับ และคลิปรูปสี่เหลี่ยมปลายทาง ทั้งสี่เหลี่ยมอยู่ในพิกัดแม่ญาติ หรือหน้าจอญาติ. | |
| ค่าที่ส่งคืนนี้ช่วยให้โปรแกรมประยุกต์ใช้ตยิ่งไคลเอนต์พื้นที่อนุรักษ์กลยุทธ์ เช่นศูนย์กลาง หรือเก็บรักษาชุดย่อยของพื้นที่ที่ไคลเอ็นต์. | |
ถ้าfCalcValidRectsเป็น TRUE และโปรแกรมประยุกต์ส่งกลับค่าศูนย์ พื้นที่ไคลเอ็นต์เก่าจะถูกรักษาไว้ และสอดคล้องกับมุมบนซ้ายของพื้นที่ที่ไคลเอนต์ใหม่.
วาดหน้าต่างอาจจะใหม่ ขึ้นอยู่กับว่ามีระบุลักษณะคลา CS_HREDRAW หรือ CS_VREDRAW นี่คือค่าเริ่มต้น ย้อนกลับเข้าประมวลผลของข้อความนี้ โดยฟังก์ชันDefWindowProcนอก (จากการที่ไคลเอ็นต์ปกติสี่เหลี่ยมคำนวณอธิบายไว้ในตารางข้างต้น).
nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ไม่สนับสนุน
หัวข้อ:ประกาศใน winuser.h.
ภาพรวมของ Windowsข้อความในหน้าต่าง DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT