Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

BILGI: Nokta boyutunu ve yazı tipini ve mantıksal yüksekliği hesaplama

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:74299
Özet
Yalnızca gereken nokta boyutunu verilen Microsoft Windows grafik ortamında bir yazı tipi oluşturmak için <a0></a0>, bir uygulama yüksekliğini belirtmek için mantıksal birim CreateFont() ve CreateFontIndirect() işlevleri kullanabilirsiniz çünkü yazı tipinin mantıksal yüksekliği hesaplamalısınız.

Kullanıcı için bir yazı tipini tanımlamak için <a0></a0>, yazı tipinin punto boyutu, yüksekliği verilen uygulama hesaplayabilirsiniz. Bu makalede, MM_TEXT eşleme modunu bu hesaplamaları gerçekleştirmek için formül sağlar. Başka bir eşleştirme modunda yazı tipi boyutunu hesaplamak için yeni bir Denklem türetilmesi gerekir.
Daha fazla bilgi
Mantıksal yüksekliği hesaplamak için <a0></a0>, aşağıdaki formülü kullanın:
                                Point Size * LOGPIXELSY   height = Internal Leading + -------------------------                                          72				
LOGPIXELSY bir mantıksal inç aygıttaki içerdiği piksel sayısıdır. Bu değer, LOGPIXELSY dizinli GetDeviceCaps() işlevi çağrılarak alınır. 72 Değeri, bir inç 72 noktaları içerdiğinden önemlidir.

Bu hesaplama sorun henüz oluşturulmadı çünkü yazı tipini iç öndeki belirlemek için yöntem olmasıdır. Bu zorluk bir çözüm için <a0></a0>, formülün bir aşağıdaki türevi kullanın:
            -(Point Size * LOGPIXELSY)   height = --------------------------                         72				
bu formül ayrıca aşağıdaki gibi yazılabilir:
   plf->lfHeight = -MulDiv (nPtSize, GetDeviceCaps (hdc, LOGPIXELSY), 72);				
uygulama CreateFont() çağıran veya CreateFontIndirect() çalışır ve Yükseklik parametre için negatif bir değer belirtir, yazı tipi Eşleyicisi hücre yüksekliğini yerine karakter Yükseklik için en yakın eşleşme sağlar.. Tarafından aşağıdaki çizimde gösterildiği gibi iç satır aralığı, hücre yüksekliğini karakter yüksekliği arasındaki fark olan:
   ----------  <------------------------------   |        |           |- Internal Leading  |   | |   |  |  <---------                    |   | |   |  |        |                       |- Cell Height   | |---|  |        |- Character Height     |   | |   |  |        |                       |   | |   |  |        |                       |   ----------  <------------------------------				
punto yazı tipi boyutunu aşağıdaki formülle hesaplar:
                (Height - Internal Leading) * 72   Point Size = --------------------------------                           LOGPIXELSY				
yükseklik ağ ve iç satır aralığı değerlerini TEXTMETRIC veri yapısı ' alınır. LOGPIXELSY değeri GetDeviceCaps işlevinden, yukarıda özetlenen olarak alınır.

Hesaplanan boyutu en yakın tamsayıya gelin. Windows MulDiv() işlevi, sonuç yuvarlanır ve önceki hesaplama gerçekleştirmek için mükemmel bir seçimdir.
3.00 3.10 3.50 4.00 win16sdk TrueType

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 74299 - Son İnceleme: 11/21/2006 15:47:12 - Düzeltme: 3.2

Microsoft Windows Software Development Kit 3.1, Microsoft Win32 Uygulama Programlama Arabirimi

  • kbmt kbinfo KB74299 KbMttr
Geri bildirim