Функция CopyImage


Функция 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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz