15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Функция DrawIconEx.

Функция DrawIconEx рисует иконку или курсор на указанном контексте устройства, проводя при этом указанные растровые операции, а так же в случае необходимости, растягивая или сжимая иконку или курсор.

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

Параметры

hdc
Дескриптор контекста устройства, на котором иконка или курсор будет нарисованы.
xLeft
Логическая координата X верхнего левого угла иконки или курсора.
yTop
Логическая координата Y верхнего левого угла иконки или курсора.
hIcon
Дескриптор иконки или курсора. Этот параметр также может указывать на анимированный курсор.
cxWidth
Логическая ширина иконки или курсора. Если этот параметр равен нулю, и параметр diFlags равен DI_DEFAULTSIZE, то функция для установки ширины использует системные значения SM_CXICON или SM_CXCURSOR. Если же этот парметр равен нулю, а DI_DEFAULTSIZE не используется, то функция воспользуется реальным размером ресурса иконки.
cyWidth
Логическая высота иконки или курсора. Если этот параметр равен нулю, и параметр diFlags равен DI_DEFAULTSIZE, то функция для установки высоты использует системные значения SM_CXICON или SM_CXCURSOR. Если же этот парметр равен нулю, а DI_DEFAULTSIZE не используется, то функция воспользуется реальным размером ресурса иконки.
istepIfAniCur
Если hIcon указывает на анимированный курсор, то данный параметр содержит номер кадра для рисования.Если же hIcon не указывает на анимированный курсор, то данный параметр игнорируется.
hbrFlickerFreeDraw
Дескриптор кисти, которая будет использоваться системой для рисования без мерцания. Если hbrFlickerFreeDraw имеет правильное значение кисти, то система создаёт за кадром точечный рисунок (битмап), используя указанную кисть для цвета фона, рисует иконку или курсор, а затем копирует этот битмап на контекст устройства, указанный в hdc. Если hbrFlickerFreeDraw равен NULL, то система рисует иконку или курсор прямо на констексте устройства.
diFlags
Параметр может иметь одно из следующийх значений:
DI_COMPAT
Рисует иконку или курсор используя системную картинку нежели пользовательскую. Windows NT4.0 и позже: Этот флаг игнорируется.
DI_DEFAULTSIZE
Если параметры cxWidth и cyWidth равны нулю, то функция будет рисовать иконку или курсор используя ширину и высоту, указанные в системных метриках по умолчанию для курсоров или иконок. Если этот флаг не установлен, а параметры cxWidth и cyWidth равны нулю, то функция будет использовать реальный размер ресурса иконки.
DI_IMAGE
Рисует иконку или курсор используя картинку.
DI_MASK
Рисует иконку или курсор, используя маску.
DI_NOMIRROR
В Windows XP: Рисует иконку как неотражённую. По умолчанию, если hdc отражён, то иконка рисуется как отражённая.
DI_NORMAL
Комбинация DI_IMAGE и DI_MASK.

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

В случае успеха, возвращаемое значение не равно нулю.

В случае ошибки, функция вернёт ноль. Для получения более подробной информации о ошибке, можно воспользоваться функцией GetLastError.


Замечания

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

Аналог вызова DrawIcon (hDC, X, Y, hIcon), используя функцию DrawIconEx будет выглядеть следующим образом:

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

Информация о функции

Заголовок Объявлена в Winuser.h, включена в Windows.h
Библиотека User32.lib
Минимальные ОС Включена начиная с Windows 95 и Windows NT 3.5