Struktur LOGFONTW (shtypes.h)
Menentukan atribut font.
Sintaksis
typedef struct tagLOGFONTW {
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;
WCHAR lfFaceName[32];
} LOGFONTW;
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-leading. 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 unit 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 escapement dan sumbu x perangkat. Vektor escapement sejajar dengan garis dasar baris teks.
Anggota
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 digunakan.
Nilai berikut didefinisikan dalam Wingdi.h untuk kenyamanan.
Nilai | Berat |
---|---|
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 strikeout.
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 |
Windows Thailand |
---|
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
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 ditentukan 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 menjadi 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 mendefinisikan seberapa hati-hati GDI harus mencoba mencocokkan atribut font logis dengan yang dari font fisik aktual. Ini bisa menjadi salah satu nilai berikut yang ditentukan dalam Wingdi.h:
Nilai | Deskripsi |
---|---|
ANTIALIASED_QUALITY | Mengaktifkan antialias untuk font. Pengandar tampilan harus mendukung teks antialisis agar pengaturan ini berfungsi. |
NONANTIALIASED_QUALITY | Penggunaan paksa kualitas draf ketika subkuntang HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing registri 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 | Penampilan 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. Ini dimaksudkan untuk menentukan font ketika jenis huruf 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 Kursif. |
FF_SWISS | Font dengan lebar goresan variabel (proporsional) dan tanpa serif, misalnya, Sans Serif. |
lfFaceName[32]
Jenis:
Menentukan string null-terminated yang menentukan nama typeface font. Panjang string ini tidak boleh melebihi 32 karakter, termasuk karakter null yang dihentikan. 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.
Komentar
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 dalam font Asia Timur.
Nota
Header shtypes.h mendefinisikan LOGFONT sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosem UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
server minimum yang didukung |
Windows Server 2008 [hanya aplikasi desktop] |
Header |
shtypes.h (termasuk Shtypes.h, Dimm.h) |