共用方式為


STROBJ 結構 (winddi.h)

STROBJ 類別或文字字串物件包含設備驅動器的字元句柄和位置列舉。

語法

typedef struct _STROBJ {
  ULONG    cGlyphs;
  FLONG    flAccel;
  ULONG    ulCharInc;
  RECTL    rclBkGround;
  GLYPHPOS *pgp;
  LPWSTR   pwszOrg;
} STROBJ;

成員

cGlyphs

指定 STROBJ 中的字元數目。

flAccel

快捷鍵旗標。 此成員可以是下列任何值:

SO_BREAK_EXTRA

固定寬度間距會新增至每個斷符。

SO_CHARACTER_EXTRA

固定寬度間距會在每對連續字元之間新增。

SO_CHAR_INC_EQUAL_BM_BASE

間距取決於位圖大小。 在此內容中,位圖基底會定義為水準大小寫的 cx,而垂直大小寫則為 cy。 設定此位表示 GDI) GLYPHBITS 結構中所提供之點陣圖 (字型中的每個圖像,其基底都等於該圖像的進階寬度。 這並不表示這是固定音調字型。 (未用於 PATHOBJs.)

SO_DO_NOT_SUBSTITUTE_DEVICE_FONT

印表機驅動程式不應將其中一個印表機字型取代為 GDI 的字型選擇。

SO_DXDY

字元會在隨機位置轉譯。

SO_ESC_NOT_ORIENT

圖像的方向與逸出方向不同。 逸出是文字方向使用水準方向的角度。 方向是圖像的基準與逸出方向之間的角度。

SO_FLAG_DEFAULT_PLACEMENT

默認遞增向量是用來定位字元。

SO_GLYPHINDEX_TEXTOUT

pwszOrg 指向圖像索引的陣列,而不是 Unicode 陣列。

SO_HORIZONTAL

文字為水準;視SO_REVERSED而定,由左至右或由右至左。 Y 座標只會針對字串中的第一個圖像提供。

SO_MAXEXT_EQUAL_BM_SIDE

點陣圖的寬度相同。 在此內容中,位陣圖端會定義為水準大小寫的 cy,而垂直大小寫則定義為 cx。 此旗標保證字型中的所有字元都會有等於遞增和子系總和的同一側。 不過,這個位表示不只是常數端。 如果是水準大小寫,這個位也會指出圖像位圖頂端與其字元原點之間的垂直距離等於所有字元的遞增。 如果是垂直大小寫,這個位表示圖像的原點與圖像點的 「top」 之間的水平距離 (實際為右或左,視您是以正軸或負 Y 軸的方向撰寫,) 等於遞增。 不論是哪一種情況,所有圖像點圖的頂端和底端都以書寫方向在同一行上。 (未用於 PATHOBJs.)

SO_REVERSED

如果水平是由右至左或垂直是由下至上,則設定 。

SO_VERTICAL

文字為垂直;視SO_REVERSED而定,由上至下或由下至上。 x 座標僅針對字串中的第一個圖像提供。

SO_ZERO_BEARINGS

所有字元都有零 A 和零 C 間距。 此位保證圖像的黑色方塊不會重疊。

ulCharInc

指定字型是否為固定間距 (單空格) 字型。 如果是,這個成員等於拼字的進階寬度;否則為零。 當這個成員為非零時,GDI 只會為字串中的第一個字元提供有效的座標。 驅動程式必須接著沿著書寫方向新增這個成員的值,以產生所有其他字元位置。

rclBkGround

指定 RECTL 結構,描述字串的周框方塊。

pgp

整個字串 之 GLYPHPOS 陣列的指標。 Can be NULL (see the following Remarks section).

pwszOrg

原始 Unicode 字串或 cGlyphs 字元的 指標。 與其名稱相反,此字串通常不會以 Null 結尾。 此外,此字串不一定有效,例如使用印表機字型的日誌,在此情況下,此參數會是 NULL

備註

驅動程式可以呼叫 STROBJ_vEnumStartSTROBJ_bEnum ,以取得字串中字元的身分識別和位置。 如果 pgp 不是 NULL,則會指向描述整個字串的 GLYPHPOS 陣列,而且只需要單一呼叫 STROBJ_bEnum 。 如果 pgpNULL則必須 在循環中重複呼叫 STROBJ_bEnum,以取得所有字串的字元位置。

規格需求

需求
標頭 winddi.h (包含Winddi.h)

另請參閱

DrvGetGlyphMode

DrvTextOut