Bagaimana menghitung unit dasar Dialog dengan Non-sistem berbasis Font

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 125681
Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini menunjukkan bagaimana untuk menghitung unit dasar dialog untuk kotak dialog yang menggunakan huruf selain sistem Font pada Windows 95. Anda dapat menggunakan perhitungan ini untuk membangun dialog box template di memori atau menghitung kotak dialog dimensi.

INFORMASI LEBIH LANJUT

Setiap template kotak dialog berisi pengukuran yang menentukan posisi, lebar, dan tinggi kotak dialog dan kontrol yang berisi. Ini pengukuran perangkat-independen, sehingga aplikasi dapat menggunakan satu template untuk membuat kotak dialog yang sama untuk semua jenis perangkat tampilan. Hal ini memastikan bahwa kotak dialog akan memiliki proporsi yang sama dan penampilan di semua layar meskipun resolusi yang berbeda-beda dan aspek rasio antara layar.

Lebih lanjut, pengukuran kotak dialog yang diberikan dalam unit dasar dialog. Salah satu horisontal unit dasar sama untuk seperempat dari lebar rata-rata karakter untuk sistem font. Satu unit dasar vertikal sama dengan satu per delapan karakter rata-rata tinggi untuk sistem font. Aplikasi dapat mengambil jumlah piksel per unit dasar untuk menampilkan saat ini dengan menggunakan GetDialogBaseUnits fungsi. Word Orde rendah nilai kembali, dari fungsi GetDialogBaseUnits, berisi basis unit horisontal dan tinggi-urutan kata nilai kembali, dari fungsi GetDialogBaseUnits, berisi unit dasar vertikal.

Menggunakan informasi ini, Anda dapat menghitung unit dasar dialog untuk sebuah dialog Box menggunakan huruf selain sistem font:
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)
				
Sebagai font kotak dialog mengubah, ukuran sebenarnya dan posisi kontrol juga berubah.

Satu unit dasar kotak dialog setara dengan jumlah piksel per dialog kotak unit sebagai berikut:
1 horz dialog base unit == (2 * average char width  dialog font / 
                                average char width  system font) pixels
1 vert dialog base unit == (2 * average char height dialog font / 
                                average char height system font) pixels
				
Rata-rata karakter lebar dan tinggi font dapat dihitung sebagai berikut:
hFontOld = SelectObject(hdc,hFont);
GetTextMetrics(hdc,&tm);
GetTextExtentPoint32(hdc,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst"
            "uvwxyz",52,&size);
avgWidth = (size.cx/26+1)/2;
avgHeight = (WORD)tm.tmHeight;
				
Bidang tmAveCharWidth struktur TEXTMETRIC hanya dengan rata-rata aktual karakter lebar (biasanya memberikan lebar surat "x") dan begitu benar rata-rata karakter lebar harus dihitung untuk mencocokkan nilai yang digunakan oleh sistem.

Anda dapat menggunakan fungsi MapDialogRect untuk mengkonversi dialog kotak unit ke piksel, tetapi tidak ada fungsi yang akan mengkonversi piksel ke kotak dialog unit. Anda dapat menggunakan rumus yang ditunjukkan di sini untuk melakukan konversi ini.

REFERENSI

Untuk informasi lebih lanjut tentang topik ini, silakan lihat artikel berikut pada Basis Pengetahuan Microsoft:
145994 Bagaimana menghitung Dialog unit ketika tidak menggunakan sistem Font

Properti

ID Artikel: 125681 - Kajian Terakhir: 14 September 2011 - Revisi: 2.0
Kata kunci: 
kbdlg kbhowto kbmt KB125681 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:125681

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