Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

INFO: Menghitung ketinggian logis dan titik Ukuran Font

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
RINGKASAN
Untuk membuat font di Microsoft Windows lingkungan grafis yang diberikan hanyaukuran titik diperlukan, aplikasi harus menghitung ketinggian logisfont karena CreateFont() dan CreateFontIndirect() fungsi menggunakan unit logis untuk menentukan tinggi.

Untuk menggambarkan font untuk pengguna, aplikasi dapat menghitung titik fontukuran, diberikan tinggi. Artikel ini memberikan rumus-rumus yang diperlukan untukmelakukan perhitungan ini untuk MM_TEXT pemetaan mode. Anda harusmenurunkan 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 padaperangkat. 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 menentukaninternal terkemuka untuk font karena tidak belum telah dibuat. Padamengatasi 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 untukmelakukan perhitungan sebelumnya.
3,00 3,10 3,50 4,00 win16sdk TrueType

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 74299 - Tinjauan Terakhir: 09/14/2011 11:53:00 - Revisi: 2.0

Microsoft Windows Software Development Kit 3.1, Microsoft Win32 Application Programming Interface

  • kbinfo kbmt KB74299 KbMtid
Tanggapan