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

Nasıl yapılır: iletişim temel birimler, sistem tabanlı olmayan bir yazı tipi ile hesapla

Ö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:125681
Özet
Bu makalede, Windows 95'te sistem yazı tipi dışında yazı tipini kullanarak iletişim kutusu iletişim temel birimi hesaplamakta gösterilmiştir. Bu hesaplama, bellek iletişim kutusu şablonlar oluşturma veya iletişim kutusu boyutları hesaplamak için kullanabilirsiniz.
Daha fazla bilgi
Her <a0>iletişim</a0> kutusunda şablonu, konumu, genişlik ve Yükseklik iletişim kutusu denetimleri içerdiği ve belirttiğiniz ölçümlere içerir. Bu ölçüm değerlerinin, aygıttan bağımsız vardır, bu nedenle, uygulama tüm görüntü aygıtları türü aynı iletişim kutusu oluşturmak için tek bir şablon olarak kullanabilirsiniz. Bu, bir iletişim kutusu aynı oranlarını ve görünümü farklı çözümler ve ekranlar arasında en boy oranı rağmen tüm ekranlarında sahip sağlar.

Ayrıca, iletişim kutusunu Ölçümler iletişim temel birimleri cinsinden verilir. Yatay bir temel birimi dörtte biri sistem yazı tipi için ortalama bir karakter genişliği eşittir. Dikey bir temel birimi, sistem yazı tipi için ortalama karakter yüksekliğinin sekizde eşittir. Bir uygulama GetDialogBaseUnits işlevini kullanarak, geçerli görüntü temel birim başına piksel sayısını alabilirsiniz. Gelen bir dönüş değeri, GetDialogBaseUnits işlevi, düşük sıralı sözcüğün yatay temel birimleri içerir ve yüksek sıralı sözcük GetDialogBaseUnits işlevi, sonuç değerinin dikey temel birimleri içerir.

Bu bilgileri kullanarak, sistem yazı tipi dışında yazı tipini kullanarak bir iletişim kutusu için iletişim temel birimleri hesaplaması:
horz pixels == 2 * horz dialog units * (average char width  of dialog font                        / average char width of system font)vert pixels == 2 * vert dialog units * (average char height of dialog font                        / average char height of system font)				
yazı tipini bir iletişim kutusu değişiklikleri, bir denetimin konumunu ve gerçek boyutunu da değişir.

Bir iletişim kutusu temel birimi gibi iletişim kutusunu birim başına piksel sayısını eşdeğerdir:
1 horz dialog base unit == (2 * average char width  dialog font /                                 average char width  system font) pixels1 vert dialog base unit == (2 * average char height dialog font /                                 average char height system font) pixels				
ortalama bir karakter genişliği ve yüksekliği bir yazı tipi gibi hesaplanması:
hFontOld = SelectObject(hdc,hFont);GetTextMetrics(hdc,&tm);GetTextExtentPoint32(hdc,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst"            "uvwxyz",52,&size);avgWidth = (size.cx/26+1)/2;avgHeight = (WORD)tm.tmHeight;				
tmAveCharWidth alanı yalnızca TEXTMETRIC yapısının yapılan tahmini olarak gösteren gerçek ortalama karakter genişliği (genellikle "x" harfi genişliğini verir) ve sistem tarafından kullanılan değeri ile eşleştirmek için doğru ortalama karakter genişliği kadar hesaplanmalıdır.

Iletişim kutusu birimleri piksellere dönüştürmek MapDialogRect işlevini kullanabilirsiniz, ancak piksel iletişim kutusunu birimlerine dönüştürecek olan bir işlev yoktur. Aşağıda bu dönüştürme gerçekleştirmek için formül kullanabilirsiniz.
Referanslar
Bu konu hakkında daha fazla bilgi için lütfen Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
145994Sistem yazı tipi değil kullanılırken iletişim birimleri hesapla nasıl kullanılır

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

Özellikler

Makale No: 125681 - Son İnceleme: 07/11/2005 19:29:53 - Düzeltme: 2.3

Microsoft Platform Software Development Kit - Ocak 2000 Sürümü

  • kbmt kbdlg kbhowto KB125681 KbMttr
Geri bildirim