ข้อมูล: คำนวณตัวความสูงแบบลอจิคัลและขนาดจุดของแบบอักษร

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 74299 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

เมื่อต้องการสร้างแบบอักษรใน Microsoft Windows กราฟิกระบบที่กำหนดให้เฉพาะขนาดพอยต์ที่จำเป็น โปรแกรมประยุกต์ต้องคำนวณความสูงแบบลอจิคัลของแบบอักษรได้เนื่องจากการCreateFont()และCreateFontIndirect()ฟังก์ชันใช้หน่วยทางตรรกะเพื่อระบุความสูง

อธิบายการแบบอักษรให้กับผู้ใช้ โปรแกรมประยุกต์สามารถคำนวณขนาดจุดของแบบอักษร กำหนดความสูงของ บทความนี้แสดงสูตรจำเป็นต้องทำการคำนวณเหล่านี้สำหรับโหมดการแม็ป MM_TEXT คุณจะต้องสืบทอดมายังสมการใหม่เพื่อคำนวณขนาดแบบอักษรในโหมดการแมปอื่น

ข้อมูลเพิ่มเติม

เมื่อต้องการคำนวณความสูงแบบลอจิคัล ใช้สูตรต่อไปนี้:
                                Point Size * LOGPIXELSY
   height = Internal Leading + -------------------------
                                          72
				
LOGPIXELSY คือ จำนวนพิกเซลที่มีอยู่ในนิ้วแบบลอจิคัลบนอุปกรณ์ ค่านี้จะได้รับ โดยการเรียกGetDeviceCaps()ฟังก์ชันกับดัชนี LOGPIXELSY ค่า 72 เป็นสำคัญเนื่องจากนิ้วหนึ่งประกอบด้วยคะแนน 72

ปัญหาเกี่ยวกับการคำนวณนี้คือ ว่า ไม่มีวิธีการตรวจสอบเลขนำภายในหน้าสำหรับแบบอักษรได้เนื่องจากจะได้ไม่ได้ถูกสร้างขึ้น เมื่อต้องการแก้ไขปัญหานี้ใน ใช้การเปลี่ยนแปลงต่อไปนี้ของสูตรต่อไปนี้:
            -(Point Size * LOGPIXELSY)
   height = --------------------------
                         72
				
สูตรนี้อาจจะถูกเขียนเป็นดังนี้:
   plf->lfHeight = -MulDiv (nPtSize, GetDeviceCaps (hdc, LOGPIXELSY), 72);
				
เมื่อเรียกโปรแกรมประยุกต์นี้CreateFont()หรือCreateFontIndirect()หน้าที่ และระบุค่าที่เป็นค่าลบสำหรับพารามิเตอร์ความสูง mapper แบบอักษรให้จับคู่ที่ใกล้เคียงที่สุดสำหรับความสูงของอักขระเกินกว่าความสูงของเซลล์ ความแตกต่างระหว่างเซลล์ความสูงและความสูงของอักขระที่เป็นหน้าภายใน ตามที่แสดงตามแผนภาพต่อไปนี้:
   ----------  <------------------------------
   |        |           |- Internal Leading  |
   | |   |  |  <---------                    |
   | |   |  |        |                       |- Cell Height
   | |---|  |        |- Character Height     |
   | |   |  |        |                       |
   | |   |  |        |                       |
   ----------  <------------------------------
				
สูตรต่อไปนี้คำนวณขนาดจุดของแบบอักษร:
                (Height - Internal Leading) * 72
   Point Size = --------------------------------
                           LOGPIXELSY
				
ค่าความสูงและเลขนำหน้าภายในจะได้รับจากนั้นtextmetricโครงสร้างข้อมูล ค่า LOGPIXELSY จะได้รับจากนั้นGetDeviceCapsทำเป็นเค้าร่างเหนือ

round ที่คำนวณได้ชี้ขนาดจำนวนเต็มที่ใกล้เคียงที่สุด WindowsMulDiv()ฟังก์ชันผลลัพธ์ของการปัดเศษ และเป็นทางเลือก excellent เพื่อทำการคำนวณการก่อนหน้านี้

คุณสมบัติ

หมายเลขบทความ (Article ID): 74299 - รีวิวครั้งสุดท้าย: 12 ตุลาคม 2553 - Revision: 1.0
ใช้กับ
  • Microsoft Windows Software Development Kit 3.1
  • Microsoft Win32 Application Programming Interface เมื่อใช้กับ:
    • Microsoft Windows NT Server 3.51
    • Microsoft Windows NT Server 4.0 Standard Edition
    • Microsoft Windows NT Workstation 3.5
    • Microsoft Windows NT Workstation 3.51
    • Microsoft Windows NT Workstation 4.0 Developer Edition
Keywords: 
kbinfo kbmt KB74299 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:74299

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com