Freigeben über


STROBJ-Struktur (winddi.h)

Die STROBJ-Klasse oder das Textzeichenfolgenobjekt enthält eine Enumeration von Glyphenhandles und -positionen für den Gerätetreiber.

Syntax

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

Member

cGlyphs

Gibt die Anzahl der Glyphen im STROBJ an.

flAccel

Beschleunigerflags. Bei diesem Member kann es sich um einen der folgenden Werte handeln:

SO_BREAK_EXTRA

Jedem Umbruchzeichen wird ein Abstand mit fester Breite hinzugefügt.

SO_CHARACTER_EXTRA

Zwischen jedem Paar aufeinanderfolgender Glyphen wird ein Abstand mit fester Breite hinzugefügt.

SO_CHAR_INC_EQUAL_BM_BASE

Der Abstand wird durch Bitmapgrößen bestimmt. In diesem Kontext wird Bitmapbasis als cx für den horizontalen Fall und cy für vertikalen Fall definiert. Dieses Bit ist festgelegt bedeutet, dass jede Glyphe in einer Schriftart, die die Bitmap (bereitgestellt in der GLYPHBITS-Struktur von GDI) über eine Basis verfügt, die der erweiterten Breite für diese Glyphe entspricht. Dies bedeutet nicht, dass dies eine feste Tonhöhenschriftart ist. (Nicht für PATHOBJs verwendet.)

SO_DO_NOT_SUBSTITUTE_DEVICE_FONT

Ein Druckertreiber sollte keine seiner Druckerschriftarten durch die Schriftartauswahl von GDI ersetzen.

SO_DXDY

Glyphen sollen an zufälligen Positionen gerendert werden.

SO_ESC_NOT_ORIENT

Die Ausrichtung einer Glyphe unterscheidet sich von der Escapementrichtung. Die Escapement ist der Winkel, den die Textrichtung mit dem horizontalen bildet. Die Ausrichtung ist der Winkel zwischen der Grundlinie der Glyphe und der Escapementrichtung.

SO_FLAG_DEFAULT_PLACEMENT

Standardmäßige Inkrementvektoren werden verwendet, um die Zeichen zu positionieren.

SO_GLYPHINDEX_TEXTOUT

pwszOrg zeigt auf ein Array von Glyphenindizes und nicht auf ein Unicode-Array.

SO_HORIZONTAL

Text ist horizontal; Je nach SO_REVERSED von links nach rechts oder von rechts nach links. Die y-Koordinate wird nur für die erste Glyphe in der Zeichenfolge angegeben.

SO_MAXEXT_EQUAL_BM_SIDE

Bitmaps haben die gleiche Breite. In diesem Kontext wird die Bitmapseite als cy für horizontales Case und cx für vertikales Case definiert. Dieses Flag garantiert, dass alle Glyphen in der Schriftart die gleiche Seite haben, die der Summe von Aufsteigend und Nachfolger entspricht. Dieses Bit gibt jedoch mehr als nur eine konstante Seite an. Für die horizontale Groß-/Kleinschreibung gibt dieses Bit auch an, dass der vertikale Abstand zwischen dem oberen Rand der Bitmap der Glyphe und dem Zeichenursprung gleich dem Aufsteigenden für alle Glyphen ist. Für die vertikale Groß-/Kleinschreibung gibt dieses Bit an, dass der horizontale Abstand zwischen dem Ursprung der Glyphe und der "oberen" Bitmap der Glyphe (die wirklich rechts oder links ist, je nachdem, ob Sie in Richtung der positiven oder negativen y-Achse schreiben) gleich dem Aufsteigenden ist. In beiden Fällen liegen die Oberen und Unteren aller Glyphen-Bitmaps in der gleichen Zeile in Schreibrichtung. (Nicht für PATHOBJs verwendet.)

SO_REVERSED

Legen Sie fest, ob horizontal von rechts nach links oder vertikal von unten nach oben ist.

SO_VERTICAL

Text ist vertikal; Je nach SO_REVERSED von oben nach unten oder von unten nach oben. Die x-Koordinate wird nur für die erste Glyphe in der Zeichenfolge angegeben.

SO_ZERO_BEARINGS

Alle Glyphen weisen den Abstand null A und null C auf. Dieses Bit garantiert, dass sich die Blackboxen der Glyphe nicht überlappen.

ulCharInc

Gibt an, ob es sich bei der Schriftart um eine Schriftart mit fester Tonhöhe (Monospace) handelt. Wenn dies der Fall ist, entspricht dieser Member der Vorlaufbreite von Glyphen in Pelz; Andernfalls ist er null. Wenn dieser Member ungleich null ist, gibt GDI eine gültige Koordinate nur für das erste Zeichen in der Zeichenfolge an. Alle anderen Zeichenpositionen müssen vom Treiber generiert werden, indem der Wert dieses Elements entlang der Schreibrichtung sukzessive hinzugefügt wird.

rclBkGround

Gibt eine RECTL-Struktur an, die das Begrenzungsfeld für die Zeichenfolge beschreibt.

pgp

Zeiger auf das GLYPHPOS-Array für die gesamte Zeichenfolge. Kann NULL sein (siehe den folgenden Abschnitt "Hinweise ").

pwszOrg

Zeiger auf die ursprüngliche Unicode-Zeichenfolge oder cGlyphenzeichen . Im Gegensatz zu ihrem Namen ist diese Zeichenfolge in der Regel nicht null-beendet. Außerdem ist diese Zeichenfolge nicht immer gültig, z. B. beim Journaling mit Druckerschriftarten. In diesem Fall ist dieser Parameter NULL.

Hinweise

Ein Treiber kann STROBJ_vEnumStart und STROBJ_bEnum aufrufen, um Identitäten und Positionen von Glyphen in der Zeichenfolge abzurufen. Wenn pgp nicht NULL ist, verweist es auf ein GLYPHPOS-Array, das die gesamte Zeichenfolge beschreibt, und es ist nur ein einzelner Aufruf von STROBJ_bEnum erforderlich. Wenn pgpNULL ist, müssen STROBJ_bEnum wiederholt in einer Schleife aufgerufen werden, um alle Glyphenpositionen der Zeichenfolge abzurufen.

Anforderungen

Anforderung Wert
Header winddi.h (einschließlich Winddi.h)

Weitere Informationen

DrvGetGlyphMode

DrvTextOut