WM_NCCALCSIZE

มีส่งข้อความ WM_NCCALCSIZE เมื่อขนาดและตำแหน่งของพื้นที่ของไคลเอ็นต์ของหน้าต่างต้องคำนวณ ด้วยการประมวลผลข้อความนี้ แอปพลิเคชันสามารถควบคุมเนื้อหาของพื้นที่ของไคลเอ็นต์ของหน้าต่างเมื่อมีการเปลี่ยนแปลงขนาดหรือตำแหน่งของหน้าต่าง.

WM_NCCALCSIZE fCalcValidRects = wParam (BOOL)        / / พื้นที่ถูกต้องการตั้งค่าสถานะ lpncsp = lParam (LPNCCALCSIZE_PARAMS)  / / ขนาดคำนวณข้อมูลหรือ lpncsp = lParam (LPRECT)               / / ประสานกับหน้าต่างใหม่ 

 

พารามิเตอร์

fCalcValidRects
ค่าของwParam ถ้าwParamเป็น TRUE จะระบุว่า โปรแกรมประยุกต์ควรระบุส่วนของพื้นที่ที่ไคลเอนต์ประกอบด้วยข้อมูลที่ถูกต้อง ระบบคัดลอกข้อมูลที่ถูกต้องไปยังพื้นที่ที่ระบุภายในพื้นที่ไคลเอนต์ใหม่.

ถ้าwParamเป็น FALSE แอพลิเคชันไม่ได้จำเป็นต้องระบุส่วนของพื้นที่ของไคลเอนต์ถูกต้อง.

lpncsp
ค่าของlParam ถ้าwParamเป็น TRUE, lParamชี้ไปโครงสร้างของNCCALCSIZE_PARAMSที่ประกอบด้วยข้อมูลโปรแกรมประยุกต์ที่สามารถใช้เพื่อคำนวณใหม่ขนาดและตำแหน่งของสี่เหลี่ยมไคลเอ็นต์.

ถ้า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นอก (จากการที่ไคลเอ็นต์ปกติสี่เหลี่ยมคำนวณอธิบายไว้ในตารางข้างต้น).

QuickInfo

nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ไม่สนับสนุน
หัวข้อ:ประกาศใน winuser.h.

ดูเพิ่มเติม

ภาพรวมของ Windowsข้อความในหน้าต่าง DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT

Index