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) |