BILGI: Kalın ve italik metin, metin alanları hesaplama

Makale çevirileri Makale çevirileri
Makale numarası: 74298 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Özet

GetTextExtent() dize miktarını hesaplamak için kullanılır. Değerin ayarlanması için <a0></a0>, yazı tipi stilini bağlı olarak döndürdü. Grafik aygıt arabirimi (GDI), italik veya kalın yazı tipi istenen ve hiçbiri kullanılabilir olduğunda, bir varolan ızgara veya vektör yazı tipini kullanarak bu stilleri benzetimini.

Daha fazla bilgi

GDI benzetimli kalın ve italik yazı tipleri hem overhangs içerir. Çıkıntısı GetTextMetrics işlevini çağırarak elde TEXTMETRIC yapısındaki belirtildi. Italik veya kalın metin satırının miktarını hesaplamak için uygun yöntemi aşağıda gösterilmiştir:
   dwExtent = GetTextExtent(hDC, lpString, nCount);
   GetTextMetrics(hDC, &tm);
   xExtent = LOWORD(dwExtent) - tm.tmOverhang;
				
aşağıda listelenen italik metin hizalama örnektir. Bir sonraki karakteri zaten italik olarak belirlenmişse, çıkıntısı GetTextExtent işlevinden döndürülen öncelikli genişliği gelen düşülen değil. Çıkıntısı sonraki karaktere hizalama için aynı olduğunda çıkarılması gerekiyor.
                                        GetTextExtent yields
                                        this as the extent:

                                              ||
       /   /                                  \/ 
      /   /           /   / /   /         /   /|   |
     /---/           /   / /   /         /   / |   |
    /   /           /---/ /---/         /---/  |---|
   /   /           /   / /   /         /   /   |   |
       -----      /   / /   /         /   /    |   |
         ^            /\                      /\ 
      Overhang        ||                      ||
               Because the next        Start the nonitalic H
               character is italic,    here because it does not
               start the next          slant and would partially
               character within the    overwrite the previous
               overhang of the         italic character.
               current character
				
GDI kalın yazı tipleri synthesizes çünkü metni iki kez çıktısı, bir piksel ikinci çıkış mahsup, etkin bir şekilde her karakterin genişliğini bir piksel artırma. GDI tarafından oluşturulan kalın karakterler için çıkıntısı genellikle 1'dir. Kalın metin öncelikli genişliğini hesaplama yöntemi italik metin için benzer. GetTextExtent işlevi her zaman metni artı 1 kalın metin miktarını döndürür. Bu nedenle tmOverhang(1) çıkararak, uygun öncelikli sağlanır.
        ||   ||
        ||   ||
        ||===||
        ||   ||
        ||   ||
              ---<= This line represents the "extra" overhang of 1.
                /\ 
                ||
             GetTextExtent yields
             this as the extent of the
             bold H.
				
Not: Bu makale yalnızca tarama ve Vectory yazı tipleri için geçerlidir. ABC genişlikleri yapı tarafından tanımlanan TrueType yazı tipleri dizelerinin işlevleri her zaman iade öncelikli genişliklerde GetTextExtent() ailesi. ABC öncelikli genişlikleri hakkında daha fazla bilgi için GetCharABCWidths() işlevi belgelerine bakın.

Özellikler

Makale numarası: 74298 - Last Review: 26 Şubat 2014 Çarşamba - Gözden geçirme: 3.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Windows Software Development Kit 3.1
  • Microsoft Win32 Uygulama Programlama Arabirimi, Ne zaman ne ile kullanilir:
    • Microsoft Windows NT Server 3.5
    • 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
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbinfo KB74298 KbMttr
Machine-translated Article
Ö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:74298

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