Share via


PATHOBJ-Struktur (winddi.h)

Die PATHOBJ-Struktur wird verwendet, um eine Reihe von Linien und Bézierkurven zu beschreiben, die strich- oder gefüllt werden sollen.

Syntax

typedef struct _PATHOBJ {
  FLONG fl;
  ULONG cCurves;
} PATHOBJ;

Member

fl

Eine Reihe von Hinweisflags, die den Pfad beschreiben. Dieser Member ist ein bitweises OR (mit bestimmten Einschränkungen) der folgenden Werte:

Flag Beschreibung
PO_ALL_INTEGERS Die Scheitelpunkte des Pfads weisen ganzzahlige Koordinaten ohne Bruchteile auf. Dieses Flag ist in erster Linie als Beschleuniger gedacht, sodass Treiber einen einfacheren fast-integer-Pfad verwenden können.

Wenn GDI dieses Flag festlegt, darf der Treiber außerdem leicht von der GDI Grid Intersection Quantization(GIQ)-Standardkonvention des NT-basierten Betriebssystems abweichen, die die Rasterungsregeln für Linien vorschreibt. Insbesondere, wenn PO_ALL_INTEGERS festgelegt ist, kann der Treiber seine eigenen Regeln dafür auswählen, welches Pixel im Fall des Trennzeichens beleuchtet werden soll, wenn eine Linie logisch genau zwischen zwei Pixel fällt. In der Regel ermöglicht dieses Flag Treibern die Verwendung von Hardwarefunktionen zum Zeichnen von Punkt-zu-Punkt-Linien, auch wenn die Hardware eine andere Tie-Breaker-Regel als die von GIQ aufweist.

GDI legt dieses Flag nur für durchgehende Linien fest, die ein Pixel breit sind. Außerdem legt GDI dieses Flag nur fest, wenn der Grafikmodus des Gerätekontexts auf GM_COMPATIBLE festgelegt ist. Weitere Informationen zum Festlegen des Grafikmodus finden Sie unter SetGraphicsMode in der Microsoft Window SDK-Dokumentation.

PO_BEZIERS Der Pfad enthält Bézierkurven. GDI legt nur einen der PO_BEZIERS oder PO_ELLIPSE im fl-Element fest.
PO_ELLIPSE Der Pfad besteht aus einer einzelnen Ellipse, die im umgebenden Rechteck des Pfads eingeschrieben ist. GDI legt nur einen der PO_BEZIERS oder PO_ELLIPSE im fl-Element fest.
PO_ENUM_AS_INTEGERS Der Treiber kann anfordern, dass die von PATHOBJ_bEnum zurückgegebenen Scheitelpunkte in einem 32-Bit-Ganzzahlformat anstelle des Standardformats 28.4 ausgedrückt werden. Der Treiber sendet diese Anforderung durch ORing PO_ENUM_AS_INTEGERS in das fl-Element des angegebenen PATHOBJ, bevor PATHOBJ_bEnum aufgerufen wird.

Der Treiber kann PO_ENUM_AS_INTEGERS nur festlegen, wenn GDI das PO_ALL_INTEGERS-Flag festgelegt hat. Das heißt, der Pfad muss bekannt sein, dass er nur ganzzahlige Koordinaten enthält. Beachten Sie, dass PO_ENUM_AS_INTEGERS das einzige Flag ist, das der Treiber ändern darf.

Wenn dieses Flag festgelegt ist, darf der Treiber leicht von der GIQ-Standardkonvention abweichen, die die Rasterungsregeln für Zeilen vorschreibt. Insbesondere wenn PO_ENUM_ALL_INTEGERS festgelegt ist, kann der Treiber seine eigenen Regeln dafür auswählen, welches Pixel im Fall des Trennzeichens beleuchtet werden soll, wenn eine Linie logisch genau zwischen zwei Pixel fällt. In der Regel ermöglicht dieses Flag Treibern die Verwendung von Hardwarefunktionen zum Zeichnen von Punkt-zu-Punkt-Linien, auch wenn die Hardware eine andere Tie-Breaker-Regel als die von GIQ aufweist.

cCurves

Die Anzahl der Linien und Bézierkurven, aus denen der Pfad besteht.

Hinweise

Funktionen, die dieser Struktur zugeordnet sind, ermöglichen es, die Linien und Kurven für den Treiber aufzuzählen.

Die folgenden GDI-Dienstroutinen werden für PATHOBJ-Objekte bereitgestellt:

PATHOBJ_bCloseFigure
PATHOBJ_bEnum
PATHOBJ_bEnumClipLines
PATHOBJ_bMoveTo
PATHOBJ_bPolyBezierTo
PATHOBJ_bPolyLineTo
PATHOBJ_vEnumStart
PATHOBJ_vEnumStartClipLines
PATHOBJ_vGetBounds

Anforderungen

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

Weitere Informationen

DrvFillPath

DrvStrokeAndFillPath

DrvStrokePath

EngCreatePath

EngDeletePath