ExtCreatePen-Funktion (wingdi.h)
Die ExtCreatePen-Funktion erstellt einen logischen kosmetischen oder geometrischen Stift mit den angegebenen Format-, Breiten- und Pinselattributen.
Syntax
HPEN ExtCreatePen(
[in] DWORD iPenStyle,
[in] DWORD cWidth,
[in] const LOGBRUSH *plbrush,
[in] DWORD cStyle,
[in] const DWORD *pstyle
);
Parameter
[in] iPenStyle
Eine Kombination aus Typ-, Stil-, Endcap- und Joinattributen. Die Werte aus jeder Kategorie werden mithilfe des bitweisen OR-Operators ( | ) kombiniert.
Der Stifttyp kann einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Der Stift ist geometrisch. |
|
Der Stift ist kosmetisch. |
Der Stiftstil kann einer der folgenden Werte sein.
Die Endkappe wird nur für geometrische Stifte angegeben. Die Endkappe kann einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Endkappen sind rund. |
|
Endkappen sind quadratisch. |
|
Endkappen sind flach. |
Die Verknüpfung wird nur für geometrische Stifte angegeben. Der Join kann einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Joins sind abgeschrägt. |
|
Joins werden gemildet, wenn sie sich innerhalb des aktuellen Grenzwerts befinden, der von der SetMiterLimit-Funktion festgelegt wurde. Wenn dieser Grenzwert überschritten wird, wird die Verknüpfung abgeschrägt. |
|
Joins sind rund. |
[in] cWidth
Die Breite des Stifts. Wenn der dwPenStyle-Parameter PS_GEOMETRIC ist, wird die Breite in logischen Einheiten angegeben. Wenn dwPenStyle PS_COSMETIC ist, muss die Breite auf 1 festgelegt werden.
[in] plbrush
Ein Zeiger auf eine LOGBRUSH-Struktur . Wenn dwPenStyle PS_COSMETIC ist, gibt das lbColor-Element die Farbe des Stifts an, und das lpStyle-Element muss auf BS_SOLID festgelegt werden. Wenn dwPenStyle PS_GEOMETRIC ist, müssen alle Member verwendet werden, um die Pinselattribute des Stifts anzugeben.
[in] cStyle
Die Länge des lpStyle-Arrays in DWORD-Einheiten. Dieser Wert muss null sein, wenn dwPenStyle nicht PS_USERSTYLE ist.
Die Formatanzahl ist auf 16 begrenzt.
[in] pstyle
Ein Zeiger auf ein Array. Der erste Wert gibt die Länge des ersten Bindestrichs in einem benutzerdefinierten Stil an, der zweite Wert gibt die Länge des ersten Leerzeichens an usw. Dieser Zeiger muss NULL sein, wenn dwPenStyle nicht PS_USERSTYLE ist.
Wenn das lpStyle-Array während der Linienzeichnung überschritten wird, wird der Zeiger auf den Anfang des Arrays zurückgesetzt. Wenn dies geschieht und dwStyleCount eine gerade Zahl ist, wiederholt sich das Muster von Bindestrichen und Leerzeichen. Wenn dwStyleCount jedoch ungerade ist, wird das Muster umgekehrt, wenn der Zeiger zurückgesetzt wird. Das erste Element von lpStyle verweist nun auf Leerzeichen, das zweite auf Bindestriche usw.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Handle, das einen logischen Stift identifiziert.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.
Hinweise
Ein geometrischer Stift kann eine beliebige Breite aufweisen und jedes der Attribute eines Pinsels aufweisen, z. B. Dither und Muster. Ein kosmetischer Stift kann nur ein einzelnes Pixel breit sein und muss eine einfarbige Farbe sein, aber kosmetische Stifte sind im Allgemeinen schneller als geometrische Stifte.
Die Breite eines geometrischen Stifts wird immer in Welteinheiten angegeben. Die Breite eines kosmetischen Stifts ist immer 1.
Endkappen und Verknüpfungen werden nur für geometrische Stifte angegeben.
Nachdem eine Anwendung einen logischen Stift erstellt hat, kann sie diesen Stift in einem Gerätekontext auswählen, indem sie die SelectObject-Funktion aufruft . Nachdem ein Stift in einem Gerätekontext ausgewählt wurde, kann er zum Zeichnen von Linien und Kurven verwendet werden.
Wenn dwPenStyle PS_COSMETIC und PS_USERSTYLE ist, geben die Einträge im lpStyle-Array längen von Bindestrichen und Leerzeichen in Formateinheiten an. Eine Stileinheit wird durch das Gerät definiert, auf dem der Stift zum Zeichnen einer Linie verwendet wird.
Wenn dwPenStyle PS_GEOMETRIC und PS_USERSTYLE ist, geben die Einträge im lpStyle-Array längen von Bindestrichen und Leerzeichen in logischen Einheiten an.
Wenn dwPenStyle PS_ALTERNATE ist, wird die Formatvorlage ignoriert, und jedes andere Pixel wird festgelegt.
Wenn das lbStyle-Element der LOGBRUSH-Struktur , auf die von lplb verwiesen wird, BS_PATTERN ist, kann die Bitmap, auf die das lbHatch-Element dieser Struktur verweist, kein DIB-Abschnitt sein. Ein DIB-Abschnitt ist eine Bitmap, die von CreateDIBSection erstellt wird. Wenn es sich bei dieser Bitmap um einen DIB-Abschnitt handelt, schlägt die ExtCreatePen-Funktion fehl.
Wenn eine Anwendung keinen angegebenen Stift mehr benötigt, sollte sie die DeleteObject-Funktion aufrufen, um den Stift zu löschen.
ICM: Bei der Stifterstellung wird keine Farbverwaltung durchgeführt. Die Farbverwaltung wird jedoch ausgeführt, wenn der Stift in einen ICM-fähigen Gerätekontext ausgewählt wird.
Beispiele
Ein Beispiel finden Sie unter Verwenden von Stiften.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wingdi.h (windows.h einschließen) |
Bibliothek | Gdi32.lib |
DLL | Gdi32.dll |