Поделиться через


Функция DrawIconEx (winuser.h)

Рисует значок или курсор в указанный контекст устройства, выполняя указанные операции растра и растягивая или сжимая значок или курсор, как указано.

Синтаксис

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
);

Параметры

[in] hdc

Тип: HDC

Дескриптор контекста устройства, в который будет нарисован значок или курсор.

[in] xLeft

Тип: int

Логическая координата x левого верхнего угла значка или курсора.

[in] yTop

Тип: int

Логическая координата y верхнего левого угла значка или курсора.

[in] hIcon

Тип: HICON

Дескриптор для рисования значка или курсора. Этот параметр может определить анимированный курсор.

[in] cxWidth

Тип: int

Логическая ширина значка или курсора. Если этот параметр равен нулю, а параметр diFlagsDI_DEFAULTSIZE, функция использует значение системной метрики SM_CXICON для задания ширины. Если этот параметр равен нулю и DI_DEFAULTSIZE не используется, функция использует фактическую ширину ресурса.

[in] cyWidth

Тип: int

Логическая высота значка или курсора. Если этот параметр равен нулю, а параметр diFlags DI_DEFAULTSIZE, функция использует значение системной метрики SM_CYICON для задания ширины. Если этот параметр равен нулю и DI_DEFAULTSIZE не используется, функция использует фактическую высоту ресурса.

[in] istepIfAniCur

Тип: UINT

Индекс кадра для рисования, если hIcon идентифицирует анимированный курсор. Этот параметр игнорируется, если hIcon не определяет анимированный курсор.

[in, optional] hbrFlickerFreeDraw

Тип: HBRUSH

Дескриптор кисти, которая используется системой для рисования без мерцания. Если hbrFlickerFreeDraw является допустимым дескриптором кисти, система создает растровое изображение вне экрана с помощью указанной кисти для цвета фона, рисует значок или курсор в растровое изображение, а затем копирует растровое изображение в контекст устройства, определяемый hdc. Если hbrFlickerFreeDrawNULL, система рисует значок или курсор непосредственно в контекст устройства.

[in] diFlags

Тип: UINT

Флаги рисования. Этот параметр может быть одним из следующих значений.

Ценность Значение
DI_COMPAT
0x0004
Этот флаг игнорируется.
DI_DEFAULTSIZE
0x0008
Рисует значок или курсор с помощью ширины и высоты, указанной значениями системных метрик для значков, если для параметров cxWidth и cyWidth задано значение нулю. Если этот флаг не указан и cxWidth и cyWidth задано равно нулю, функция использует фактический размер ресурса.
DI_IMAGE
0x0002
Рисует значок или курсор с помощью изображения. См. примечания.
DI_MASK
0x0001
Рисует значок или курсор с помощью маски. См. примечания.
DI_NOMIRROR
0x0010
Рисует значок как неуправляемый значок. По умолчанию значок рисуется как зеркальный значок, если hdc зеркально.
DI_NORMAL
0x0003
Сочетание DI_IMAGE и DI_MASK. См. примечания.

Возвращаемое значение

Тип: BOOL

Если функция выполнена успешно, возвращаемое значение ненулевое.

Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Функция DrawIconEx помещает верхний левый угол значка в расположении, указанном параметрами xLeft и yTop. Расположение зависит от текущего режима сопоставления контекста устройства.

Если заданы только один из флагов DI_IMAGE и DI_MASK, то соответствующий растровый рисунок рисуется с помощью кодаSRCCOPY.

Если заданы флаги DI_IMAGE и DI_MASK:

  • Если значок или курсор является 32-разрядным альфа-смешанным значком или курсором, изображение рисуется с AC_SRC_OVERфункцией смешивания, а маска игнорируется.
  • Для всех остальных значков или курсоров маска рисуется с помощью кода операции SRCANDрастрового, а изображение рисуется с помощью кода SRCINVERT

Чтобы дублировать DrawIcon (hDC, X, Y, hIcon), вызовите DrawIconEx следующим образом:

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winuser.h (включая Windows.h)
библиотеки User32.lib
DLL User32.dll
набор API ext-ms-win-ntuser-gui-l1-1-0 (представлено в Windows 8)

См. также

концептуальные

CopyImage

DrawIcon

значки

LoadImage

Справочник

BitBlt

AlphaBlend

BLENDFUNCTION