afx_msg โมฆะ OnMeasureItem ( int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct );
พารามิเตอร์
nIDCtl
ID ของตัวควบคุม?
lpMeasureItemStruct
จุดไปยังโครงสร้างข้อมูลแบบMEASUREITEMSTRUCTที่ประกอบด้วยขนาดของตัวควบคุมเจ้าของรูปวาด?
หมายเหตุ
กรอบการเรียกฟังก์ชันนี้สมาชิกตามกรอบสำหรับเจ้าของเจ้าของวาดรูปปุ่ม กล่องคำสั่งผสม กล่องรายการ หรือรายการเมนูเมื่อมีสร้างตัวควบคุม?
แทนที่ฟังก์ชันนี้สมาชิก และกรอกข้อมูลในโครงสร้างข้อมูลMEASUREITEMSTRUCTชี้ไปตามlpMeasureItemStructและกลับ นี้ Windows ขนาดของตัวควบคุมที่จะแจ้งให้ทราบ และอนุญาตให้ Windows ดำเนินการโต้ตอบผู้ใช้กับตัวควบคุมถูกต้อง?
ถ้ากล่องรายการหรือกล่องคำสั่งผสมถูกสร้างขึ้น ด้วยลักษณะLBS_OWNERDRAWVARIABLEหรือCBS_OWNERDRAWVARIABLEกรอบเรียกฟังก์ชันนี้เจ้าของสำหรับแต่ละรายการในตัวควบคุม มิฉะนั้น ฟังก์ชันนี้จะเรียกว่าหนึ่งครั้ง?
Windows เริ่มการเรียกไปยังOnMeasureItemสำหรับเจ้าของกล่องคำสั่งผสมและกล่องรายการที่สร้างขึ้น ด้วยลักษณะOWNERDRAWFIXEDก่อนที่จะส่งการ WM_INITDIALOGข้อความ ผล เมื่อเจ้าได้รับการเรียกนี้ Windows ได้ไม่ได้กำหนดความสูงและความกว้างของแบบอักษรที่ใช้ในตัวควบคุม การเรียกฟังก์ชันและการคำนวณที่จำเป็นต้องใช้ค่าเหล่านี้จะเกิดขึ้นในฟังก์ชันหลักของแอพลิเคชันหรือไลบรารี?
หากสินค้ามีการวัดเป็นCMenu, CListBoxหรือCComboBoxวัตถุ การทำงานเสมือนMeasureItemของระดับชั้นเหมาะสมจะเรียกว่า แทนที่ฟังก์ชันMeasureItemสมาชิกของคลาสของตัวควบคุมเหมาะสมเพื่อคำนวณ และกำหนดขนาดของสินค้าแต่ละรายการ?
OnMeasureItemจะมีชื่อว่าได้เฉพาะในกรณีที่มีสร้างตัวควบคุมคลาเวลาเรียกใช้งาน หรือมันถูกสร้างขึ้น ด้วยลักษณะLBS_OWNERDRAWVARIABLEหรือCBS_OWNERDRAWVARIABLE ถ้าตัวควบคุมถูกสร้าง โดยการโต้ตอบOnMeasureItemจะไม่มีชื่อว่า นี้เป็น เพราะเป็นส่งข้อความWM_MEASUREITEMเร็วในกระบวนการสร้างตัวควบคุม ถ้าคุณระดับชั้นย่อย โดยใช้DDX_Control, SubclassDlgItemหรือSubclassWindow, subclassing ที่มักเกิดขึ้นหลังจากกระบวนการสร้างงาน ดังนั้น ไม่มีวิธีการจัดการกับข้อความในตัวควบคุมOnChildNotifyฟังก์ชัน ซึ่งเป็นกลไกที่ MFC ใช้ใช้ON_WM_MEASUREITEM_REFLECT WM_MEASUREITEM?
หมายเหตุnbsp ฟังก์ชันนี้สมาชิกจะเรียกว่าโดยกรอบการอนุญาตให้โปรแกรมประยุกต์ของคุณเพื่อจัดการกับข้อความ Windows พารามิเตอร์ส่งผ่านไปยังฟังก์ชันของคุณแสดงพารามิเตอร์ได้รับตามกรอบเมื่อได้รับข้อความ ถ้าคุณเรียกใช้งาน base-คลาสฟังก์ชันนี้ การใช้งานที่จะใช้พารามิเตอร์เดิม ไปกับข้อความและไม่พารามิเตอร์คุณใส่(&N)?
ภาพรวม CWnd |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCMenu::MeasureItem, CListBox::MeasureItem, CComboBox::MeasureItem, WM_MEASUREITEM(&N)