Функция CopyImage (winuser.h)
Создает новое изображение (значок, курсор или растровое изображение) и копирует атрибуты указанного изображения в новое изображение. При необходимости функция растягивает биты в соответствии с требуемым размером нового изображения.
Синтаксис
HANDLE CopyImage(
[in] HANDLE h,
[in] UINT type,
[in] int cx,
[in] int cy,
[in] UINT flags
);
Параметры
[in] h
Тип: HANDLE
Дескриптор копируемых изображений.
[in] type
Тип: UINT
Тип копируемых изображений. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Копирует растровое изображение. |
|
Копирует курсор. |
|
Копирует значок. |
[in] cx
Тип: int
Требуемая ширина изображения (в пикселях). Если значение равно нулю, то возвращаемое изображение будет иметь ту же ширину, что и исходный объект hImage.
[in] cy
Тип: int
Требуемая высота изображения (в пикселях). Если значение равно нулю, то возвращенное изображение будет иметь ту же высоту, что и исходный объект hImage.
[in] flags
Тип: UINT
Этот параметр может иметь одно или несколько из следующих значений.
Значение | Значение |
---|---|
|
Удаляет исходный образ после создания копии. |
|
Пытается перезагрузить ресурс значка или курсора из исходного файла ресурсов, а не просто копировать текущее изображение. Это полезно для создания копии другого размера, если файл ресурсов содержит ресурс нескольких размеров. Без этого флага CopyImage растягивает исходное изображение до нового размера. Если этот флаг установлен, CopyImage использует размер в файле ресурсов, который ближе всего к нужному размеру. Это будет успешно, только если hImage был загружен LoadIcon или LoadCursor или LoadImage с флагом LR_SHARED. |
|
Возвращает исходный объект hImage , если он удовлетворяет критериям для копии, то есть правильным размерам и глубине цвета, в этом случае флаг LR_COPYDELETEORG игнорируется. Если этот флаг не указан, всегда создается новый объект . |
|
Если задано значение и создается новое растровое изображение, то растровое изображение создается как раздел DIB. В противном случае растровое изображение создается как зависимое от устройства растровое изображение. Этот флаг действителен, только если uType имеет IMAGE_BITMAP. |
|
Использует формат цвета по умолчанию. |
|
Использует ширину или высоту, заданные значениями системных метрик для курсоров или значков, если значения cxDesired или cyDesired имеют нулевое значение. Если этот флаг не указан и для cxDesired и cyDesired задано значение 0, функция использует фактический размер ресурса. Если ресурс содержит несколько изображений, функция использует размер первого изображения. |
|
Создает новое монохромное изображение. |
Возвращаемое значение
Тип: HANDLE
Если функция выполняется успешно, возвращаемое значение — это дескриптор созданного образа.
Если функция завершается сбоем, возвращается значение NULL. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
После завершения использования ресурса можно освободить связанную с ним память, вызвав одну из функций, приведенных в следующей таблице.
Ресурс | Функция Release |
---|---|
Bitmap | DeleteObject |
Курсор | DestroyCursor |
Значок | DestroyIcon |
Система автоматически удаляет ресурс после завершения процесса, однако вызов соответствующей функции экономит память и уменьшает размер рабочего набора процесса.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |
Набор API | ext-ms-win-ntuser-gui-l1-3-0 (представлен в Windows 10 версии 10.0.10240) |
См. также раздел
Основные понятия
Справочные материалы