afx_msg โมฆะ OnNcCalcSize ( BOOL bCalcValidRects, NCCALCSIZE_PARAMS * lpncsp );
พารามิเตอร์
bCalcValidRects
ระบุว่า โปรแกรมประยุกต์ควรระบุส่วนของพื้นที่ที่ไคลเอนต์ประกอบด้วยข้อมูลที่ถูกต้อง Windows จะคัดลอกข้อมูลที่ถูกต้องไปยังพื้นที่ที่ระบุภายในพื้นที่ไคลเอนต์ใหม่ ถ้าพารามิเตอร์นี้เป็นจริงแอพลิเคชันควรระบุส่วนของพื้นที่ที่ไคลเอนต์ไม่ถูกต้อง?
lpncsp
ชี้ไปยังโครงสร้างข้อมูลของNCCALCSIZE_PARAMSที่ประกอบด้วยข้อมูลโปรแกรมประยุกต์ที่สามารถใช้ในการคำนวณใหม่ขนาดและตำแหน่งของสี่เหลี่ยมCWnd (รวมถึงพื้นที่ไคลเอ็นต์ ขอบ คำอธิบาย แถบเลื่อน และอื่น ๆ)?
หมายเหตุ
กรอบการเรียกฟังก์ชันนี้สมาชิกเมื่อขนาดและตำแหน่งของพื้นที่ที่ไคลเอ็นต์ที่จำเป็นต้องมีคำนวณ ด้วยการประมวลผลข้อความนี้ แอปพลิเคชันสามารถควบคุมเนื้อหาของพื้นที่ของไคลเอ็นต์ของหน้าต่างเมื่อมีการเปลี่ยนแปลงขนาดหรือตำแหน่งของหน้าต่าง?
คำนึงถึงค่าของbCalcValidRectsสี่เหลี่ยมแรกในอาร์เรย์ที่ระบุ โดยสมาชิกของโครงสร้างrgrcของโครงสร้างNCCALCSIZE_PARAMSมีพิกัดของหน้าต่าง สำหรับหน้าต่างลูก พิกัดจะสัมพันธ์กับพื้นที่ของไคลเอ็นต์ของหน้าต่างหลัก สำหรับระดับบน windows พิกัดเป็นพิกัดของหน้าจอ แอปพลิเคชันควรปรับเปลี่ยนrgrc [0]สี่เหลี่ยมเพื่อแสดงขนาดและตำแหน่งของพื้นที่ที่ไคลเอ็นต์?
Rgrc [1]และrgrc [2]สี่เหลี่ยมถูกต้องเท่านั้นถ้าbCalcValidRectsไม่เป็นจริง ในกรณีนี้rgrc [1]สี่เหลี่ยมประกอบด้วยพิกัดของหน้าต่างก่อนที่จะถูกย้าย หรือปรับขนาด Rgrc [2]สี่เหลี่ยมประกอบด้วยพิกัดของพื้นที่ของไคลเอ็นต์ของหน้าต่างก่อนถูกย้ายหน้าต่าง พิกัดทั้งหมดที่สัมพันธ์กับหน้าหรือหน้าต่างหลัก?
เริ่มต้นใช้งานคำนวณขนาดของพื้นที่ของไคลเอนต์ที่ยึดตามลักษณะหน้าต่าง (การแสดงตนของแถบเลื่อน เมนู และอื่น ๆ), และวางผลลัพธ์ในlpncsp?
หมายเหตุnbsp ฟังก์ชันนี้สมาชิกจะเรียกว่าโดยกรอบการอนุญาตให้โปรแกรมประยุกต์ของคุณเพื่อจัดการกับข้อความ Windows พารามิเตอร์ส่งผ่านไปยังฟังก์ชันของคุณแสดงพารามิเตอร์ได้รับตามกรอบเมื่อได้รับข้อความ ถ้าคุณเรียกใช้งาน base-คลาสฟังก์ชันนี้ การใช้งานที่จะใช้พารามิเตอร์เดิม ไปกับข้อความและไม่พารามิเตอร์คุณใส่(&N)?
ภาพรวม CWnd |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbsp WM_NCCALCSIZE, CWnd::MoveWindow, CWnd::SetWindowPos(&N)