Export (0) Print
Expand All

DrawIconEx function

Draws an icon or cursor into the specified device context, performing the specified raster operations, and stretching or compressing the icon or cursor as specified.

Syntax


BOOL WINAPI DrawIconEx(
  _In_      HDC hdc,
  _In_      int xLeft,
  _In_      int yTop,
  _In_      HICON hIcon,
  _In_      int cxWidth,
  _In_      int cyWidth,
  _In_      UINT istepIfAniCur,
  _In_opt_  HBRUSH hbrFlickerFreeDraw,
  _In_      UINT diFlags
);

Parameters

hdc [in]

Type: HDC

A handle to the device context into which the icon or cursor will be drawn.

xLeft [in]

Type: int

The logical x-coordinate of the upper-left corner of the icon or cursor.

yTop [in]

Type: int

The logical y-coordinate of the upper-left corner of the icon or cursor.

hIcon [in]

Type: HICON

A handle to the icon or cursor to be drawn. This parameter can identify an animated cursor.

cxWidth [in]

Type: int

The logical width of the icon or cursor. If this parameter is zero and the diFlags parameter is DI_DEFAULTSIZE, the function uses the SM_CXICON system metric value to set the width. If this parameter is zero and DI_DEFAULTSIZE is not used, the function uses the actual resource width.

cyWidth [in]

Type: int

The logical height of the icon or cursor. If this parameter is zero and the diFlags parameter is DI_DEFAULTSIZE, the function uses the SM_CYICON system metric value to set the width. If this parameter is zero and DI_DEFAULTSIZE is not used, the function uses the actual resource height.

istepIfAniCur [in]

Type: UINT

The index of the frame to draw, if hIcon identifies an animated cursor. This parameter is ignored if hIcon does not identify an animated cursor.

hbrFlickerFreeDraw [in, optional]

Type: HBRUSH

A handle to a brush that the system uses for flicker-free drawing. If hbrFlickerFreeDraw is a valid brush handle, the system creates an offscreen bitmap using the specified brush for the background color, draws the icon or cursor into the bitmap, and then copies the bitmap into the device context identified by hdc. If hbrFlickerFreeDraw is NULL, the system draws the icon or cursor directly into the device context.

diFlags [in]

Type: UINT

The drawing flags. This parameter can be one of the following values.

ValueMeaning
DI_COMPAT
0x0004

This flag is ignored.

DI_DEFAULTSIZE
0x0008

Draws the icon or cursor using the width and height specified by the system metric values for icons, if the cxWidth and cyWidth parameters are set to zero. If this flag is not specified and cxWidth and cyWidth are set to zero, the function uses the actual resource size.

DI_IMAGE
0x0002

Draws the icon or cursor using the image.

DI_MASK
0x0001

Draws the icon or cursor using the mask.

DI_NOMIRROR
0x0010

Draws the icon as an unmirrored icon. By default, the icon is drawn as a mirrored icon if hdc is mirrored.

DI_NORMAL
0x0003

Combination of DI_IMAGE and DI_MASK.

 

Return value

Type: BOOL

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The DrawIconEx function places the icon's upper-left corner at the location specified by the xLeft and yTop parameters. The location is subject to the current mapping mode of the device context.

To duplicate DrawIcon (hDC, X, Y, hIcon), call DrawIconEx as follows:

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

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Winuser.h (include Windows.h)

Library

User32.lib

DLL

User32.dll

See also

Reference
CopyImage
DrawIcon
LoadImage
Conceptual
Icons

 

 

Community Additions

ADD
Show:
© 2014 Microsoft