Bagikan melalui


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)

Lihat juga

DrvGetGlyphMode

DrvTextOut