Freigeben über


DrawIconEx-Funktion (winuser.h)

Zeichnet ein Symbol oder 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 oberen linken Ecke des Symbols oder Cursors.

[in] hIcon

Typ: HICON-

Ein Ziehpunkt für das zu zeichnende 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 Parameter DI_DEFAULTSIZEist, 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 Parameter DI_DEFAULTSIZEist, 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 für flackerfreie Zeichnung 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 dann die Bitmap in den Gerätekontext, der durch hdcidentifiziert wird. Wenn hbrFlickerFreeDrawNULL-ist, zeichnet das System das Symbol oder den Cursor direkt in den Gerätekontext.

[in] diFlags

Typ: UINT-

Die Zeichnungskennzeichnungen. Dieser Parameter kann einer der folgenden Werte sein:

Wert Bedeutung
DI_COMPAT
0x0004
Dieses Kennzeichen wird ignoriert.
DI_DEFAULTSIZE
0x0008
Zeichnet das Symbol oder den Cursor mithilfe der von den Systemmetrikwerten für Symbole angegebenen Breite und Höhe, wenn die cxWidth- und cyWidth Parameter auf Null 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 Anmerkungen.
DI_MASK
0x0001
Zeichnet das Symbol oder den Cursor mithilfe der Maske. Siehe Anmerkungen.
DI_NOMIRROR
0x0010
Zeichnet das Symbol als unbewundertes Symbol. Standardmäßig wird das Symbol als gespiegeltes Symbol gezeichnet, wenn hdc- gespiegelt ist.
DI_NORMAL
0x0003
Kombination aus DI_IMAGE und DI_MASK. Siehe Anmerkungen.

Rückgabewert

Typ: BOOL-

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

Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Die funktion DrawIconEx platziert die obere linke Ecke des Symbols an der position, die durch die xLeft und yTop Parameter angegeben wird. Der Standort unterliegt dem aktuellen Zuordnungsmodus des Gerätekontexts.

Wenn nur eine der DI_IMAGE und DI_MASK Flags festgelegt ist, wird die entsprechende Bitmap mit dem SRCCOPYRastervorgangscodegezeichnet.

Wenn sowohl die DI_IMAGE als auch DI_MASK Flags festgelegt sind:

  • Wenn es sich bei dem Symbol oder Cursor um ein 32-Bit-Alpha-gemischtes Symbol oder Cursor handelt, wird das Bild mit AC_SRC_OVERBlend-Funktion gezeichnet, und die Maske wird ignoriert.
  • Bei allen anderen Symbolen oder Cursorn wird die Maske mit dem SRCANDRasteroperationscodegezeichnet, und das Bild wird mit dem SRCINVERTRastervorgangscode

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

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- winuser.h (enthalten Windows.h)
Library User32.lib
DLL- User32.dll
API-Satz ext-ms-win-ntuser-gui-l1-1-0 (eingeführt in Windows 8)

Siehe auch

Konzeptionelle

CopyImage-

DrawIcon

Symbole

LoadImage-

Referenz-

BitBlt-

AlphaBlend-

BLENDFUNCTION-