Struktur STROBJ (winddi.h)
Kelas STROBJ, atau objek string teks, berisi enumerasi handel glyph dan posisi untuk driver perangkat.
Sintaks
typedef struct _STROBJ {
ULONG cGlyphs;
FLONG flAccel;
ULONG ulCharInc;
RECTL rclBkGround;
GLYPHPOS *pgp;
LPWSTR pwszOrg;
} STROBJ;
Anggota
cGlyphs
Menentukan jumlah glyph dalam STROBJ.
flAccel
Bendera akselerator. Anggota ini bisa menjadi salah satu nilai berikut:
SO_BREAK_EXTRA
Penspasian lebar tetap ditambahkan ke setiap karakter pemisah.
SO_CHARACTER_EXTRA
Penspasian lebar tetap ditambahkan di antara setiap pasangan glyph berturut-turut.
SO_CHAR_INC_EQUAL_BM_BASE
Penspasian ditentukan oleh ukuran bitmap. Dalam konteks ini, basis bitmap didefinisikan sebagai cx untuk kasus horizontal, cy untuk huruf vertikal. Bit ini diatur berarti bahwa setiap glyph dalam font bitmap (disediakan dalam struktur GLYPHBITS oleh GDI) akan memiliki dasar yang sama dengan lebar lanjutan untuk glyph tersebut. Ini tidak berarti bahwa ini adalah font pitch tetap. (Tidak digunakan untuk PATHOBJs.)
SO_DO_NOT_SUBSTITUTE_DEVICE_FONT
Pengandar pencetak tidak boleh mengganti salah satu font pencetaknya dengan pilihan fon GDI.
SO_DXDY
Glyph akan dirender pada posisi acak.
SO_ESC_NOT_ORIENT
Orientasi glyph berbeda dari arah pelarian. Escapement adalah sudut yang dibuat arah teks dengan horizontal. Orientasi adalah sudut antara garis besar glyph dan arah pelarian.
SO_FLAG_DEFAULT_PLACEMENT
Vektor kenaikan default digunakan untuk memposisikan karakter.
SO_GLYPHINDEX_TEXTOUT
pwszOrg menunjuk ke array indeks glyph, bukan array Unicode.
SO_HORIZONTAL
Teks bersifat horizontal; kiri-ke-kanan atau kanan-ke-kiri, tergantung pada SO_REVERSED. Koordinat y hanya disediakan untuk glyph pertama dalam string.
SO_MAXEXT_EQUAL_BM_SIDE
Bitmap memiliki lebar yang sama. Dalam konteks ini, sisi bitmap didefinisikan sebagai cy untuk kasus horizontal dan cx untuk kasus vertikal. Bendera ini menjamin bahwa semua glyph dalam font akan memiliki sisi yang sama dengan jumlah percender dan turun. Namun, bit ini menunjukkan lebih dari sekadar sisi konstanta. Untuk kasus horizontal, bit ini juga menunjukkan bahwa jarak vertikal antara bagian atas bitmap glyph dan asal karakternya sama dengan ascender untuk semua glyph. Untuk kasus vertikal, bit ini menunjukkan bahwa jarak horizontal antara asal glyph dan "atas" bitmap glyph (yang benar-benar kanan atau kiri, tergantung pada apakah Anda menulis ke arah sumbu positif atau negatif y) sama dengan ascender. Dalam kedua kasus, bagian atas dan bawah semua bitmap glyph terletak pada garis yang sama ke arah penulisan. (Tidak digunakan untuk PATHOBJs.)
SO_REVERSED
Atur apakah horizontal kanan-ke-kiri atau vertikal adalah bawah-ke-atas.
SO_VERTICAL
Teks vertikal; atas-ke-bawah atau bawah-ke-atas, tergantung pada SO_REVERSED. Koordinat x hanya disediakan untuk glyph pertama dalam string.
SO_ZERO_BEARINGS
Semua glyph memiliki spasi nol A dan nol C. Bit ini menjamin bahwa kotak hitam glyph tidak tumpang tindih.
ulCharInc
Menentukan apakah fonta adalah font pitch tetap (monospace). Jika ya, anggota ini sama dengan lebar glyph lanjutan dalam pel; jika tidak, itu adalah nol. Ketika anggota ini bukan nol, GDI menyediakan koordinat yang valid hanya untuk karakter pertama dalam string. Semua posisi karakter lainnya harus dihasilkan oleh driver dengan secara berturut-turut menambahkan nilai anggota ini di sepanjang arah penulisan.
rclBkGround
Menentukan struktur RECTL yang menjelaskan kotak pembatas untuk string.
pgp
Penunjuk ke array GLYPHPOS untuk seluruh string. Dapat berupa NULL (lihat bagian Keterangan berikut).
pwszOrg
Arahkan ke string Unicode asli atau karakter cGlyphs . Bertentangan dengan namanya, string ini biasanya tidak dihentikan null. Selain itu, string ini tidak selalu valid, seperti dalam jurnal dengan font printer, dalam hal ini parameter ini akan NULL.
Keterangan
Driver dapat memanggil STROBJ_vEnumStart dan STROBJ_bEnum untuk mendapatkan identitas dan posisi glyph dalam string. Jika pgp bukan NULL, itu menunjuk ke array GLYPHPOS yang menjelaskan seluruh string dan hanya satu panggilan ke STROBJ_bEnum yang diperlukan. Jika pgpNULL, STROBJ_bEnum harus dipanggil berulang kali dalam perulangan untuk mendapatkan semua posisi glyph string.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | winddi.h (termasuk Winddi.h) |