Struktur LOGFONTA (dimm.h)
Menentukan atribut font.
Sintaks
typedef struct __MIDL___MIDL_itf_dimm_0000_0000_0003 {
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
CHAR lfFaceName[32];
} LOGFONTA;
Anggota
lfHeight
Jenis: LONG
Menentukan tinggi, dalam unit logis, dari sel karakter font atau karakter. Nilai tinggi karakter (juga dikenal sebagai tinggi em) adalah nilai tinggi sel karakter dikurangi nilai internal di depannya. Pemeta font menginterpretasikan nilai yang ditentukan dalam lfHeight dengan cara berikut.
Nilai | Deskripsi |
---|---|
> 0 | Pemeta font mengubah nilai ini menjadi unit perangkat dan mencocokkannya dengan tinggi sel font yang tersedia. |
0 | Pemeta font menggunakan nilai tinggi default saat mencari kecocokan. |
< 0 | Pemeta font mengubah nilai ini menjadi unit perangkat dan mencocokkan nilai absolutnya dengan tinggi karakter font yang tersedia. |
Untuk semua perbandingan tinggi, pemeta font mencari font terbesar yang tidak melebihi ukuran yang diminta.
Pemetaan ini terjadi ketika font digunakan untuk pertama kalinya.
Untuk mode pemetaan MM_TEXT, Anda dapat menggunakan rumus berikut untuk menentukan tinggi font dengan ukuran titik tertentu.
lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
di mana MulDiv didefinisikan sebagai berikut:
#define MulDiv(a,b,c) (((a)*(b))/(c))
lfWidth
Jenis: LONG
Menentukan lebar rata-rata, dalam satuan logis, karakter dalam font. Jika lfWidth bukan nol, rasio aspek perangkat dicocokkan dengan rasio aspek digitalisasi font yang tersedia untuk menemukan kecocokan terdekat, ditentukan oleh nilai absolut perbedaan.
lfEscapement
Jenis: LONG
Menentukan sudut, dalam sepuluh derajat, antara vektor pelarian dan sumbu x perangkat. Vektor escapement sejajar dengan garis dasar baris teks.
Anggota lfEscapement menentukan pelarian dan orientasi. Anda harus mengatur lfEscapement dan lfOrientation ke nilai yang sama.
lfOrientation
Jenis: LONG
Menentukan sudut, dalam sepuluh derajat, antara garis dasar setiap karakter dan sumbu x perangkat.
lfWeight
Jenis: LONG
Menentukan bobot font dalam rentang 0 hingga 1000. Misalnya, 400 normal dan 700 tebal. Jika nilai ini nol, bobot default akan digunakan.
Nilai berikut didefinisikan dalam Wingdi.h untuk kenyamanan.
Nilai | Beban |
---|---|
FW_DONTCARE | 0 |
FW_THIN | 100 |
FW_EXTRALIGHT | 200 |
FW_ULTRALIGHT | 200 |
FW_LIGHT | 300 |
FW_NORMAL | 400 |
FW_REGULAR | 400 |
FW_MEDIUM | 500 |
FW_SEMIBOLD | 600 |
FW_DEMIBOLD | 600 |
FW_BOLD | 700 |
FW_EXTRABOLD | 800 |
FW_ULTRABOLD | 800 |
FW_HEAVY | 900 |
FW_BLACK | 900 |
lfItalic
Jenis: BYTE
TRUE untuk menentukan font miring.
lfUnderline
Jenis: BYTE
TRUE untuk menentukan font bergaris bawah.
lfStrikeOut
Jenis: BYTE
TRUE untuk menentukan font coretan.
lfCharSet
Jenis: BYTE
Menentukan set karakter. Nilai berikut telah ditentukan sebelumnya:
ANSI_CHARSET | BALTIC_CHARSET |
CHINESEBIG5_CHARSET | DEFAULT_CHARSET |
EASTEUROPE_CHARSET | GB2312_CHARSET |
GREEK_CHARSET | HANGUL_CHARSET |
MAC_CHARSET | OEM_CHARSET |
RUSSIAN_CHARSET | SHIFTJIS_CHARSET |
SYMBOL_CHARSET | TURKISH_CHARSET |
Windows Korea |
---|
JOHAB_CHARSET |
Middle-Eastern Windows |
---|
HEBREW_CHARSET |
ARABIC_CHARSET |
Thai Windows |
---|
THAI_CHARSET |
Nilai OEM_CHARSET menentukan kumpulan karakter yang bergantung pada sistem operasi.
DEFAULT_CHARSET diatur ke nilai berdasarkan lokal sistem saat ini. Misalnya, ketika lokal sistem adalah bahasa Inggris (Amerika Serikat), nilainya ANSI_CHARSET.
Font dengan set karakter lain mungkin ada di sistem operasi. Jika aplikasi menggunakan font dengan kumpulan karakter yang tidak diketahui, aplikasi tidak boleh mencoba menerjemahkan atau menginterpretasikan string yang dirender dengan font tersebut.
Anggota ini penting dalam proses pemetaan font. Untuk memastikan hasil yang konsisten, tentukan kumpulan karakter tertentu. Jika Anda menentukan nama typeface di anggota lfFaceName , pastikan nilai lfCharSet cocok dengan kumpulan karakter typeface yang ditentukan dalam lfFaceName.
lfOutPrecision
Jenis: BYTE
Menentukan presisi output. Presisi output menentukan seberapa dekat output harus cocok dengan tinggi, lebar, orientasi karakter, escapement, pitch, dan jenis font font yang diminta. Ini bisa menjadi salah satu nilai berikut yang didefinisikan dalam Wingdi.h:
Nilai | Deskripsi |
---|---|
OUT_DEFAULT_PRECIS | Menentukan perilaku pemeta font default. |
OUT_RASTER_PRECIS | Menginstruksikan pemeta font untuk memilih font raster ketika sistem berisi beberapa font dengan nama yang sama. |
OUT_STRING_PRECIS | Nilai ini tidak digunakan oleh pemeta font, tetapi dikembalikan ketika font raster dijumlahkan. |
lfClipPrecision
Jenis: BYTE
Menentukan presisi kliping. Presisi kliping menentukan cara mengklip karakter yang sebagian berada di luar wilayah kliping. Ini bisa berupa satu atau beberapa nilai berikut yang ditentukan dalam Wingdi.h:
Nilai | Deskripsi |
---|---|
CLIP_DEFAULT_PRECIS | Menentukan perilaku kliping default. |
CLIP_CHARACTER_PRECIS | Tidak digunakan. |
CLIP_STROKE_PRECIS | Tidak digunakan oleh pemeta font, tetapi dikembalikan ketika font raster, vektor, atau TrueType dijumlahkan. |
lfQuality
Jenis: BYTE
Menentukan kualitas output. Kualitas output menentukan seberapa hati-hati GDI harus mencoba mencocokkan atribut logical-font dengan font fisik aktual. Ini bisa menjadi salah satu nilai berikut yang didefinisikan dalam Wingdi.h:
Nilai | Deskripsi |
---|---|
ANTIALIASED_QUALITY | Mengaktifkan antialias untuk font. Pengandar tampilan harus mendukung teks yang diantisipasi agar setelan ini berfungsi. |
NONANTIALIASED_QUALITY | Memaksa penggunaan kualitas draf ketika subkuntang registri HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing ada. |
CLEARTYPE_COMPAT_QUALITY | Mengaktifkan teks ClearType untuk font menggunakan lebar yang kompatibel. Lebar yang kompatibel menghasilkan teks yang memiliki spasi yang sama dengan teks non-ClearType. |
CLEARTYPE_QUALITY | Mengaktifkan teks ClearType untuk font. Pengandar tampilan harus mendukung teks ClearType agar pengaturan ini berfungsi. |
DEFAULT_QUALITY | Tampilan font tidak masalah. |
DRAFT_QUALITY | Untuk font raster GDI, penskalaan diaktifkan, yang berarti bahwa lebih banyak ukuran font tersedia, tetapi kualitasnya mungkin lebih rendah. Font tebal, miring, garis bawah, dan coretan disintesis jika perlu. |
lfPitchAndFamily
Jenis: BYTE
Menentukan pitch dan grup font. Dua bit berurutan rendah menentukan nada font dan dapat menjadi salah satu nilai berikut yang ditentukan dalam Wingdi.h:
- DEFAULT_PITCH
- FIXED_PITCH
- MONO_FONT
- VARIABLE_PITCH
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
Keluarga font menjelaskan tampilan font secara umum. Mereka dimaksudkan untuk menentukan font ketika typeface yang tepat yang diinginkan tidak tersedia. Nilai untuk keluarga font adalah sebagai berikut:
Nilai | Deskripsi |
---|---|
FF_DECORATIVE | Font baru, misalnya, Bahasa Inggris Lama. |
FF_DONTCARE | Tidak peduli atau tidak tahu. |
FF_MODERN | Font dengan lebar goresan konstan (monospace), dengan atau tanpa serif. Font monospace biasanya modern, misalnya, Pica, Elite, dan Courier New. |
FF_ROMAN | Font dengan lebar goresan variabel (proporsional) dan dengan serif, misalnya, Serif. |
FF_SCRIPT | Font yang dirancang agar terlihat seperti tulisan tangan, misalnya, Skrip dan Cursive. |
FF_SWISS | Font dengan lebar goresan variabel (proporsional) dan tanpa serif, misalnya, Sans Serif. |
lfFaceName[32]
Jenis: TCHAR[LF_FACESIZE]
Menentukan string null-terminated yang menentukan nama typeface font. Panjang string ini tidak boleh melebihi 32 karakter, termasuk karakter null yang mengakhiri. Fungsi EnumFontFamilies dapat digunakan untuk menghitung nama typeface dari semua font yang saat ini tersedia. Jika lfFaceName adalah string kosong, GDI menggunakan font pertama yang cocok dengan atribut lain yang ditentukan.
Keterangan
Situasi berikut tidak mendukung antialias ClearType:
- Teks dirender pada printer.
- Tampilan diatur untuk 256 warna atau kurang.
- Teks dirender ke klien server terminal.
- Font bukan font TrueType atau font Microsoft OpenType dengan kerangka TrueType. Misalnya, berikut ini tidak mendukung antialias ClearType: Font tipe 1, font Postscript OpenType tanpa kerangka TrueType, font bitmap, font vektor, dan font perangkat.
- Font memiliki bitmap yang disematkan, untuk ukuran font apa pun yang berisi bitmap yang disematkan. Misalnya, ini umumnya terjadi di font Asia Timur.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Header | dimm.h (termasuk Shtypes.h, Dimm.h) |