Функция CopyImage создает новое изображение (значок, курсор, или точечный рисунок) и копирует атрибуты указанного изображения в новое изображение. Если необходимо, функция растягивает биты, чтобы размер нового изображения подогнать под требуемый.
Синтаксис
HANDLE CopyImage( HANDLE hImage, UINT uType, int cxDesired, int cyDesired, UINT fuFlags ); |
Параметры
hImage
[in] Дескриптор копируемого изображения.uType
[in] Устанавливает тип копируемого изображения. Этим параметром может быть одно из ниже перечисленных значений.
Значение | Предназначение |
IMAGE_BITMAP | Копирует точечный рисунок. |
IMAGE_CURSOR | Копирует курсор. |
IMAGE_ICON | Копирует значок. |
cxDesired
[in] Устанавливает требуемую ширину изображения, в пикселях. Если она равняется нулю, то возвращенное изображение будет иметь ту же ширину, что и оригинал, определенный в hImage.cyDesired
[in] Устанавливает требуемую высоту изображения, в пикселях. Если она равняется нулю, то возвращенное изображение будет иметь ту же высоту, что и оригинал, определенный в hImage.fuFlags
[in] Этот параметр может состоять из одного или нескольких нижеследующих значений.Значение | Предназначение |
LR_COPYDELETEORG | Удаляет исходное изображение после создания копии. |
LR_COPYFROMRESOURCE | Пытается перезагрузить ресурс значка или курсора из исходного файла ресурса вместо того, чтобы просто скопировать текущее изображение. Это полезно для того, чтобы создавать разноразмерные копии, когда файл ресурса содержит несколько размеров ресурса. Без этого флажка, CopyImage растягивает исходное изображение до нового размера. Если этот флажок установлен, CopyImage использует размер в файле ресурса наиболее приближенный к требуемому размеру. Действие завершится успешно только в том случае, если параметр hImage, был загружен LoadIcon, или LoadCursor или LoadImage с флажком LR_SHARED. |
LR_COPYRETURNORG | Возвращает исходное значение параметра hImage, если оно удовлетворяет критериям для копирования, то есть правильные размеры и глубина цвета, когда игнорируется флажок LR_COPYDELETEORG . Если этот флажок не установлен, всегда создается новый объект. |
LR_CREATEDIBSECTION | Если флажок установлен и создается новый точечный рисунок, этот рисунок создается как не зависящий от устройства раздел битового образа (DIB). Или же, растровое изображение создается как аппаратно-зависимый точечный рисунок. Этот флажок допустим только тогда, если параметр uType - IMAGE_BITMAP. |
LR_MONOCHROME | Создает новое монохромное изображение. |
Возвращаемое значение
Если функция завершается успешно, возвращаемое значение - дескриптор недавно созданного изображения.
Если функция завершается ошибкой, возвращаемое значение - ПУСТО (NULL). Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Замечания
Когда Вы заканчиваете, использовать ресурс, то можете освободить связанную с ним память при помощи вызова одной из функций следующие в таблице ниже.
Ресурс | Функция освобождения |
---|---|
Точечный рисунок | DeleteObject |
Курсор | DestroyCursor |
Значок | DestroyIcon |
Система автоматически удаляет ресурс тогда, когда его процесс завершает работу, однако, вызов соответствующей функции сохраняет память и уменьшает размер рабочего объема памяти доступного процессу.
Смотри такжеОбзор Ресурсы, Функции, используемые ресурсами, LoadImage
Размещение и совместимость CopyImage |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.5 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Userl32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |