Share via


DrvStrokePath-Funktion (winddi.h)

Die DrvStrokePath-Funktion stricht (umreißt) einen Pfad.

Syntax

BOOL DrvStrokePath(
  [in, out]      SURFOBJ   *pso,
  [in]           PATHOBJ   *ppo,
  [in]           CLIPOBJ   *pco,
  [in, optional] XFORMOBJ  *pxo,
  [in]           BRUSHOBJ  *pbo,
  [in]           POINTL    *pptlBrushOrg,
  [in]           LINEATTRS *plineattrs,
  [in]           MIX       mix
);

Parameter

[in, out] pso

Zeiger auf eine SURFOBJ-Struktur , die die Oberfläche identifiziert, auf der gezeichnet werden soll.

[in] ppo

Zeiger auf eine PATHOBJ-Struktur . GDI PATHOBJ_Xxx-Dienstroutinen werden bereitgestellt, um die Linien, Bézierkurven und andere Daten aufzulisten, aus denen der Pfad besteht. Dies gibt an, was gezeichnet werden soll.

[in] pco

Zeiger auf eine CLIPOBJ-Struktur . GDI CLIPOBJ_Xxx-Dienstroutinen werden bereitgestellt, um den Clipbereich als Gruppe von Rechtecken aufzulisten. Optional können alle Zeilen im Pfad in einer CLIPOBJ-Struktur vorgeklammert werden. Dies bedeutet, dass Treiber GDI alle Linienausschnittberechnungen ausführen können.

[in, optional] pxo

Zeiger auf eine XFORMOBJ-Struktur . Dies ist nur erforderlich, wenn eine geometrische breite Linie gezeichnet werden soll. Es gibt die Transformation an, die Weltkoordinaten Gerätekoordinaten zuordnet. Dies ist erforderlich, da der Pfad in Gerätekoordinaten angegeben wird, aber eine geometrische breite Linie tatsächlich in Weltkoordinaten erweitert wird.

Die XFORMOBJ-Struktur kann abgefragt werden, um die Transformation zu finden.

[in] pbo

Zeiger auf eine BRUSHOBJ-Struktur , die den Pinsel angibt, der beim Zeichnen des Pfads verwendet werden soll.

[in] pptlBrushOrg

Zeiger auf eine POINTL-Struktur , die den Pinselursprung angibt, der zum Ausrichten des Pinselmusters auf dem Gerät verwendet wird.

[in] plineattrs

Zeiger auf eine LINEATTRS-Struktur . Beachten Sie, dass das elStyleState-Element dieser Struktur als Teil dieser Funktion aktualisiert werden muss, wenn die Zeile formatiert ist. Beachten Sie außerdem, dass das ptlLastPel-Element aktualisiert werden muss, wenn eine kosmetische Linie mit einer einzelnen Pixelbreite gezeichnet wird.

[in] mix

Der Mischmodus, der die Für den Pinsel zu verwendenden Rastervorgänge im Vordergrund und im Hintergrund definiert. Weitere Informationen zum Mischmodus finden Sie unter Hinweise.

Rückgabewert

Der Rückgabewert ist TRUE , wenn der Treiber in der Lage ist, den Pfad zu streichen. Wenn GDI stattdessen den Pfad streichen soll, ist der Rückgabewert FALSE, aber kein Fehlercode wird protokolliert. Wenn beim Treiber ein Fehler auftritt, wird der Rückgabewert DDI_ERROR, und es wird ein Fehlercode gemeldet.

Hinweise

Wenn der Treiber die Funktion eingebunden hat und die entsprechenden GCAPS festgelegt sind, ruft GDI DrvStrokePath auf, wenn GDI eine Linie oder Kurve mit einem beliebigen Satz von Attributen zeichnet.

Wenn ein Treiber diesen Einstiegspunkt unterstützt, sollte er auch das Zeichnen von kosmetischen breiten Linien mit willkürlichem Ausschneiden unterstützen. Mithilfe der bereitgestellten GDI-Funktionen kann der Aufruf in eine Reihe von Zeilen mit einer Pixelbreite mit vorberechnetem Ausschneiden aufgeschlüsselt werden.

Diese Funktion ist erforderlich, wenn eine Zeichnung auf einer geräteseitig verwalteten Oberfläche ausgeführt werden soll.

Treiber für erweiterte Geräte können optional diesen Aufruf empfangen, um Pfade mit Bézierkurven und geometrischen breiten Linien zu zeichnen. GDI testet die GCAPS_BEZIERS und GCAPS_GEOMETRICWIDE Flags des flGraphicsCaps-Members der DEVINFO-Struktur , um zu entscheiden, ob diese Funktion aufgerufen werden soll. (Die vier Kombinationen der Bits bestimmen die vier Funktionalitätsebenen für diesen Aufruf.) Wenn der Treiber einen erweiterten Aufruf erhält, der Bézier-Kurven oder geometrische breite Linien enthält, kann er entscheiden, den Aufruf nicht zu verarbeiten und FALSE zurückzugeben. Dies kann vorkommen, wenn der Pfad oder das Ausschneiden zu komplex ist, um das Gerät verarbeiten zu können. Wenn der Aufruf FALSE zurückgibt, unterteilt GDI den Aufruf in einfachere Aufrufe, die einfacher verarbeitet werden können.

Bei geräteverwalteten Oberflächen muss die Funktion nur ein Pixel breite einfarbige und formatierte kosmetische Linien mit einem einfarbigen Pinsel unterstützen.

Der Mixmodus definiert, wie das eingehende Muster mit den Daten gemischt werden soll, die sich bereits auf der Geräteoberfläche befinden. Der MIX-Datentyp besteht aus zwei ROP2-Werten (Binary Raster Operation), die in eine einzelne ULONG gepackt sind. Das Byte der niedrigsten Ordnung definiert den Rastervorgang im Vordergrund. das nächste Byte definiert den Hintergrundrastervorgang. Weitere Informationen zu Rastervorgangscodes finden Sie in der Microsoft Windows SDK-Dokumentation.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile winddi.h (einschließlich Winddi.h)

Weitere Informationen

CLIPOBJ

DEVINFO

DrvFillPath

LINEATTRS

PATHOBJ

XFORMOBJ