INFO: Menghitung ketinggian logis dan titik Ukuran Font

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 74299 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

Untuk membuat font di Microsoft Windows lingkungan grafis yang diberikan hanya ukuran titik diperlukan, aplikasi harus menghitung ketinggian logis font karena CreateFont() dan CreateFontIndirect() fungsi menggunakan unit logis untuk menentukan tinggi.

Untuk menggambarkan font untuk pengguna, aplikasi dapat menghitung titik font ukuran, diberikan tinggi. Artikel ini memberikan rumus-rumus yang diperlukan untuk melakukan perhitungan ini untuk MM_TEXT pemetaan mode. Anda harus menurunkan persamaan baru untuk menghitung ukuran font di lain pemetaan modus.

INFORMASI LEBIH LANJUT

Untuk menghitung ketinggian logis, menggunakan rumus berikut:
                                Point Size * LOGPIXELSY
   height = Internal Leading + -------------------------
                                          72
				
LOGPIXELSY adalah jumlah piksel yang terkandung dalam inci logis pada perangkat. Nilai ini diperoleh dengan menelepon GetDeviceCaps() fungsi dengan indeks LOGPIXELSY. Nilai 72 signifikan karena satu inci berisi 72 poin.

Masalah dengan perhitungan ini adalah bahwa tidak ada metode untuk menentukan internal terkemuka untuk font karena tidak belum telah dibuat. Pada mengatasi kesulitan ini, menggunakan variasi berikut rumus:
            -(Point Size * LOGPIXELSY)
   height = --------------------------
                         72
				
Formula ini juga dapat ditulis sebagai berikut:
   plf->lfHeight = -MulDiv (nPtSize, GetDeviceCaps (hdc, LOGPIXELSY), 72);
				
Ketika panggilan aplikasi CreateFont() atau CreateFontIndirect() fungsi dan menentukan nilai negatif untuk parameter tinggi, font mapper menyediakan kecocokan terdekat untuk karakter tinggi daripada sel tinggi. Perbedaan antara sel tinggi dan tinggi karakter adalah terkemuka internal, seperti yang ditunjukkan oleh diagram berikut:
   ----------  <------------------------------
   |        |           |- Internal Leading  |
   | |   |  |  <---------                    |
   | |   |  |        |                       |- Cell Height
   | |---|  |        |- Character Height     |
   | |   |  |        |                       |
   | |   |  |        |                       |
   ----------  <------------------------------
				
Rumus berikut menghitung titik ukuran font:
                (Height - Internal Leading) * 72
   Point Size = --------------------------------
                           LOGPIXELSY
				
Nilai-nilai tinggi dan memimpin Internal yang Diperoleh dariTEXTMETRIC struktur data. LOGPIXELSY nilai yang Diperoleh dariGetDeviceCaps fungsi seperti diuraikan di atas.

Putaran dihitung menunjukkan ukuran bulat terdekat. WindowsMulDiv() fungsi putaran hasilnya dan adalah pilihan yang sangat baik untuk melakukan perhitungan sebelumnya.

Properti

ID Artikel: 74299 - Kajian Terakhir: 14 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Windows Software Development Kit 3.1
  • Microsoft Win32 Application Programming Interface, ketika digunakan dengan:
    • 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
Kata kunci: 
kbinfo kbmt KB74299 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:74299

Berikan Masukan

 

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