DrawIconEx-Funktion (winuser.h)

Zeichnet ein Symbol oder einen Cursor in den angegebenen Gerätekontext, führt die angegebenen Rastervorgänge aus und dehnt oder komprimiert das Symbol oder den Cursor wie angegeben.

Syntax

BOOL DrawIconEx(
  [in]           HDC    hdc,
  [in]           int    xLeft,
  [in]           int    yTop,
  [in]           HICON  hIcon,
  [in]           int    cxWidth,
  [in]           int    cyWidth,
  [in]           UINT   istepIfAniCur,
  [in, optional] HBRUSH hbrFlickerFreeDraw,
  [in]           UINT   diFlags
);

Parameter

[in] hdc

Typ: HDC

Ein Handle für den Gerätekontext, in den das Symbol oder der Cursor gezeichnet wird.

[in] xLeft

Typ: int

Die logische x-Koordinate der oberen linken Ecke des Symbols oder Cursors.

[in] yTop

Typ: int

Die logische y-Koordinate der linken oberen Ecke des Symbols oder Cursors.

[in] hIcon

Typ: HICON

Ein Handle zum zu zeichnenden Symbol oder Cursor. Dieser Parameter kann einen animierten Cursor identifizieren.

[in] cxWidth

Typ: int

Die logische Breite des Symbols oder Cursors. Wenn dieser Parameter null ist und der diFlags-ParameterDI_DEFAULTSIZE ist, verwendet die Funktion den SM_CXICON Systemmetrikwert, um die Breite festzulegen. Wenn dieser Parameter null ist und DI_DEFAULTSIZE nicht verwendet wird, verwendet die Funktion die tatsächliche Ressourcenbreite.

[in] cyWidth

Typ: int

Die logische Höhe des Symbols oder Cursors. Wenn dieser Parameter null ist und der diFlags-ParameterDI_DEFAULTSIZE ist, verwendet die Funktion den SM_CYICON Systemmetrikwert, um die Breite festzulegen. Wenn dieser Parameter null ist und DI_DEFAULTSIZE nicht verwendet wird, verwendet die Funktion die tatsächliche Ressourcenhöhe.

[in] istepIfAniCur

Typ: UINT

Der Index des zu zeichnenden Frames, wenn hIcon einen animierten Cursor identifiziert. Dieser Parameter wird ignoriert, wenn hIcon keinen animierten Cursor identifiziert.

[in, optional] hbrFlickerFreeDraw

Typ: HBRUSH

Ein Ziehpunkt für einen Pinsel, den das System zum flimmerfreien Zeichnen verwendet. Wenn hbrFlickerFreeDraw ein gültiger Pinselziehpunkt ist, erstellt das System eine Offscreen-Bitmap mit dem angegebenen Pinsel für die Hintergrundfarbe, zeichnet das Symbol oder den Cursor in die Bitmap und kopiert die Bitmap dann in den durch hdc identifizierten Gerätekontext. Wenn hbrFlickerFreeDrawNULL ist, zeichnet das System das Symbol oder den Cursor direkt in den Gerätekontext.

[in] diFlags

Typ: UINT

Die Zeichnungsflags. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
DI_COMPAT
0x0004
Dieses Flag wird ignoriert.
DI_DEFAULTSIZE
0x0008
Zeichnet das Symbol oder den Cursor mit der Breite und Höhe, die von den Systemmetrikwerten für Symbole angegeben wird, wenn die Parameter cxWidth und cyWidth auf 0 festgelegt sind. Wenn dieses Flag nicht angegeben ist und cxWidth und cyWidth auf Null festgelegt sind, verwendet die Funktion die tatsächliche Ressourcengröße.
DI_IMAGE
0x0002
Zeichnet das Symbol oder den Cursor mithilfe des Bilds. Siehe Hinweise.
DI_MASK
0x0001
Zeichnet das Symbol oder den Cursor mithilfe der Maske. Siehe Hinweise.
DI_NOMIRROR
0x0010
Zeichnet das Symbol als unbewundertes Symbol. Standardmäßig wird das Symbol als gespiegeltes Symbol gezeichnet, wenn hdc gespiegelt wird.
DI_NORMAL
0x0003
Kombination aus DI_IMAGE und DI_MASK. Siehe Hinweise.

Rückgabewert

Typ: BOOL

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die DrawIconEx-Funktion platziert die obere linke Ecke des Symbols an der durch die Parameter xLeft und yTop angegebenen Position. Der Standort unterliegt dem aktuellen Zuordnungsmodus des Gerätekontexts.

Wenn nur eines der DI_IMAGE- und DI_MASK-Flags festgelegt ist, wird die entsprechende Bitmap mit dem SRCCOPY-Rastervorgangscode gezeichnet.

Wenn sowohl die flags DI_IMAGE als auch DI_MASK festgelegt sind:

  • Wenn es sich bei dem Symbol oder Cursor um ein 32-Bit-Symbol oder einen Cursor handelt, wird das Bild mit AC_SRC_OVERBlendfunktion gezeichnet, und die Maske wird ignoriert.
  • Für alle anderen Symbole oder Cursor wird die Maske mit dem SRCAND-Rastervorgangscode gezeichnet, und das Bild wird mit dem SRCINVERT-Rastervorgangscode gezeichnet.

Um zu duplizieren DrawIcon (hDC, X, Y, hIcon), rufen Sie DrawIconEx wie folgt auf:

DrawIconEx (hDC, X, Y, hIcon, 0, 0, 0, NULL, DI_NORMAL | DI_COMPAT | DI_DEFAULTSIZE); 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-gui-l1-1-0 (eingeführt in Windows 8)

Siehe auch

Konzept

CopyImage

Drawicon

Symbole

Loadimage

Referenz

Bitblt

AlphaBlend

BLENDFUNCTION