GetDialogBaseUnitsฟังก์ชันจะส่งกลับการโต้ตอบของระบบหน่วยพื้นฐาน ซึ่งเป็นการเฉลี่ยความกว้างและความสูงของตัวอักษรในแบบอักษรของระบบ สำหรับกล่องโต้ตอบที่ใช้แบบอักษรของระบบ คุณสามารถใช้ค่าเหล่านี้เมื่อต้องการแปลงระหว่างโต้ตอบแม่แบบหน่วย ตามที่ระบุไว้ในแม่แบบของกล่องโต้ตอบ พิกเซล สำหรับกล่องโต้ตอบที่ไม่ได้ใช้แบบอักษรของระบบ การแปลงจากหน่วยต้นแบบการโต้ตอบที่พิกเซลขึ้นกับแบบอักษรที่ใช้กล่องโต้ตอบ.
สำหรับกล่องโต้ตอบชนิด ได้ง่ายต่อการใช้ฟังก์ชันMapDialogRectเพื่อทำการแปลง MapDialogRectใช้แบบอักษรลงในบัญชี และแปลงสี่เหลี่ยมเป็นพิกเซลจากหน่วยต้นแบบการโต้ตอบได้อย่างถูกต้อง.
ยาว GetDialogBaseUnits(VOID)
ฟังก์ชันนี้ได้ไม่มีพารามิเตอร์.
ค่าส่งกลับค่า 32 บิตที่ประกอบด้วยหน่วยพื้นฐานโต้ตอบได้ คำต่ำลำดับของค่าส่งกลับประกอบด้วยหน่วยพื้นฐานของกล่องโต้ตอบแนวนอน และคำสูงใบสั่งประกอบด้วยหน่วยพื้นฐานของกล่องโต้ตอบแนวตั้ง.
หน่วยพื้นฐานแนวนอนที่ส่งกลับโดยGetDialogBaseUnitsเท่ากับความกว้างเฉลี่ย พิกเซล ของอักขระในแบบอักษรระบบ หน่วยพื้นฐานแนวตั้งเท่ากับความสูง พิกเซล ของแบบอักษร.
สำหรับกล่องโต้ตอบที่ไม่ได้ใช้แบบอักษรของระบบ หน่วยพื้นฐานมีความกว้างเฉลี่ยและสูง พิกเซล ของอักขระในกล่องโต้ตอบแบบอักษร คุณสามารถใช้การ GetTextMetricsและ GetTextExtentPoint32ฟังก์ชันในการคำนวณค่าเหล่านี้สำหรับแบบอักษรที่เลือกได้ อย่างไรก็ตาม โดยใช้ฟังก์ชันMapDialogRectคุณสามารถหลีกเลี่ยงข้อผิดพลาดที่อาจเกิดถ้าคำนวณของคุณแตกต่างจากที่ดำเนินการ โดยระบบ.
แต่ละหน่วยพื้นฐานแนวนอนจะเท่ากับหน่วยของการโต้ตอบที่นอนแม่แบบที่ 4 แต่ละหน่วยพื้นฐานแนวตั้งเท่ากับหน่วยต้นแบบการโต้ตอบแนวตั้ง 8 ดังนั้น การแปลงหน่วยต้นแบบการโต้ตอบที่พิกเซล ใช้สูตรต่อไปนี้:
pixelX = (templateunitX * baseunitX) / 4 pixelY = (templateunitY * baseunitY) / 8
ในทำนองเดียวกัน การแปลงจากพิกเซลเป็นหน่วยต้นแบบการโต้ตอบ ใช้สูตรต่อไปนี้:
templateunitX = (pixelX * 4) / baseunitX templateunitY = (pixelY * 8) / baseunitY
การคูณจะดำเนินก่อนส่วนเพื่อหลีกเลี่ยงปัญหาการปัดเศษถ้าหน่วยพื้นฐานไม่สามารถหารได้ โดย 4 หรือ 8.
Windows CE: Windows CE ไม่สนับสนุนค่าข้อผิดพลาดเพิ่มเติมใด ๆ สำหรับฟังก์ชันนี้.
nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ต้องการเวอร์ชัน 1.0 หรือรุ่นใหม่กว่า
หัวข้อ:ประกาศใน winuser.h
ไลบรารีที่นำเข้า:ใช้ user32.lib.
ภาพรวมของกล่องโต้ตอบฟังก์ชันของกล่องโต้ตอบ MapDialogRect