Растровые изображения, пиктограммы и метафайлы, страница 13

piconinfo

PICONINFO. Указатель на структуру ICONH4FO, которая принимает информацию о пиктограмме. Определение структуры ICONINFO приведено в описании функции Createlconlndirect.

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

BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

winuser.h

См. также

Createlcon, Createlconlndirect

Пример

В следующем  примере загружается пиктограмма приложения,  когда пользователь выбирает пункт меню Test!. С помощью функции Getlconlnfo выбирается информация о пиктограмме. После этого отображаются растровые изображения, из которых состоит пиктограмма (рис. 13.12).

GetMetaRgn                              • Windows 98   • Windows 2000

Описание

Функция GetMetaRgn позволяет определить текущую метаобласть для контекста устройства. Текущая область отсечения для контекста устройства определена как пересечение его области отсечения и его метаобласти.

Синтаксис

int GetMetaRgn( HDC hDC, HRGN hrgn )

Параметры hDC

HDC. Контекст устройства.

hrgn

HRGN. Дескриптор существующей области. После возвращения из функции этот параметр обозначает копию текущей метаобласти.

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

int. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

wingdi.h

См. также

SetMetaRgn

Пример

См. пример для функции SetMetaRgn.

GetStretchBltMode                       • Windows 98   • Windows 2000

Описание

Функция GetStretchBltMode позволяет определить текущий режим растяжения. Эта функция определяет, как происходит добавление или удаление данных цвета из растровых изображений при их растяжении и сжатии с помощью функции StretchBlt

Синтаксис

int GetStretchBltMode( HDC hDC)

Параметры

hDC

HDC. Контекст устройства.

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

int. Текущий режим растяжения. В случае возникновения ошибки возвращаемое значение — 0. Возможные режимы растяжения перечислены в табл. 13.21.

Включаемый файл

wingdi.h

См. также

SetStretchBltMode, StretchBlt

Пример

См. пример для функции StretchBlt.

GetWinMetaFileBits                      • Windows 98   • Windows 2000

Описание

Функция GetWinMetaFileBits позволяет преобразовать расширенный метафайл в метафайл Windows 3.x и сохранить преобразованные записи в заданном буфере. В приложениях Windows 98 и Windows 2000 применяется формат расширенного метафайла. Если есть необходимость экспортировать расширенный метафайл в приложение Win32s или Windows 3.x, его вначале нужно преобразовать в более старый формат.

Синтаксис

UINT GetWinMetaFileBits( HENHMETAFILE hemf, UINT cbBuffer, LPBYTE IpbBuffer, INT fnMapMode, HDC hDCRef)

Параметры

hemf

HENHMETAFILE Дескриптор расширенного метафайла.

cbBuffer

UINT. Размер (в байтах) буфера, в который должны быть скопированы преобразованные записи.

IpbBuffer

LPBYTE. Указатель на буфер, в который должны быть скопированы преобразованные записи. Если этот параметр установлен равным NULL, возвращаемое значение — число байтов, необходимое для хранения преобразованных записей метафайла.

fnMapMode

INT. Режим отображения, который должен использоваться в преобразованном метафайле. Перечень допустимых значений приведен в табл. 12.24 главы 12.

hDCRef

HDC. Справочный контекст устройства (DC).

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

UINT. Если параметр IpbBuffer установлен равным NULL, возвращаемое значение — число байтов, необходимое для хранения преобразованных записей; в ином случае возвращаемое значение — размер данных метафайла (в байтах). В случае возникновения ошибки возвращаемое значение — 0.

Включаемый файл

wingdi.h

См. также

DeleteEnhMetaFile

Пример

В следующем примере с помощью функции GetWinMetaFileBits расширенный метафайл SAMPLE.ENF преобразуется в формат Windows 3.x, когда пользователь выбирает пункт меню Test!. Метафайл Windows 3.x сохраняется в файле SAMPLE. WMF с использованием функции CopyMetaFile.

См.    \local-sources\chapl3\13~20.txt

LoadBitmap                               • Windows 98   • Windows 2000

Описание

Функция LoadBitmap загружает ресурс растрового изображения из файла ресурса модуля. В приложении необходимо указать растровое изображение в файле описания ресурса (RC) с помощью оператора BITMAP. Закончив использование растрового изображения, приложение должно вызвать функцию DeleteObject для освобождения памяти, занимаемой изображением. Эта функция позволяет загрузить аппаратно-зависимое растровое изобра-

Синтаксис

жение (DDB) или аппаратно-независммое растровое изображение (DIB). Если загружено изображение формата DIB, оно преобразуется в формат DDB и теряет информацию о цвете. НВГГМАР LoadBitmap( HINSTANCE hinst, LPCTSTR IpszBitmap )

Параметры

hinst

HINSTANCE. Дескриптор экземпляра модуля, выполняемый файл которого содержит растровое изображение, подлежащее загрузке.

IpszBitmap

LPCTSTR. Указатель на строку с нулевым символом в конце, которая содержит имя ресурса растрового изображения, подлежащего загрузке. Для указания растрового изображения по идентификатору ресурса применяется макрокоманда MAKEINTRESOURCE.

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

НВГГМАР. Дескриптор загруженного растрового изображения. В случае возникновения ошибки возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

DeleteObject, CreateBitmap

Пример

См. пример для функции Createlconlndirect.

Loadlcon                                  • Windows 98   • Windows 2000

Описание

Функция Loadlcon позволяет загрузить пиктограмму из файла описания ресурса (RC), связанного с приложением. Пиктограммы должны быть определены в файле RC с помощью оператора ресурса ICON. Эта функция позволяет также получить пиктограммы, определенные в системе. Для загрузки системных пиктограмм параметр hinst должен быть установлен в NULL.

Синтаксис

HICON Loadlcon( HINSTANCE hinst, LPCTSTR Ipszlcon )

Параметры hinst

HINSTANCE. Дескриптор экземпляра модуля, выполняемый файл которого содержит пиктограмму, подлежащую загрузке. При загрузке стандартной пиктограммы этот параметр должен иметь значение NULL.

IpszJcon

LPCTSTR Указатель на строку с нулевым символом в конце, которая содержит имя ресурса пиктограммы, подлежащей загрузке. Для загрузки пиктограммы с использованием идентификатора ресурса предназначена макрокоманда MAKEINTRESOURCE. Чтобы загрузить одну из системных пиктограмм, необходимо установить параметр hinst равным NULL, а в качестве параметра Ipszlcon указать одно из значений, перечисленных в табл. 13.12.

Таблица 13. 12. Системные пиктограммы

Значение

Описание

IDI APPLICATION

Пиктограмма приложения, заданная по умолчанию

IDI ASTERISK

Звездочка (используется в информационных сообщениях)

IDI EXCLAMATION

Восклицательный знак (используется в предупреждающих сообщениях)

IDI_HAND

Пиктограмма в форме руки (используется в серьезных предупреждающих сообщениях)

Префикс

Описание

ОВМ_

Растровые изображения OEM

OCR_

Курсоры OEM

01С_

Пиктограммы OEM

uType

UINT. Тип загружаемого изображения. Этот параметр может иметь одно из значений, перечисленных в табл. 13.14.

Таблица 13. 14. Значения параметра uType функции Loadlmage

Значение

Описание

IMAGE_BITMAP

Загрузить растровое изображение

IMAGE_CURSOR

Загрузить курсор

IMAGE_ENHMETAFILE

Загрузить расширенный метафайл

IMAGEJCON

Загрузить пиктограмму

Значение

Описание

IDI_QUESTION

Вопросительный знак (используется в подсказках)

IDI_WINLOGO

Эмблема Windows

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

HICON. Дескриптор вновь загруженной пиктограммы. В случае возникновения ошибки возвращаемое значение — NULL.

Включаемый файл

winuser.h

См. также

Drawlcon, Loadlmage

Пример

См. пример для функции Getlconlnfo.

Loadlmage                               • Windows 98   • Windows 2000

Описание

Функция Loadlmage позволяет загрузить пиктограмму, курсор или растровое изображение из файла или файла описания ресурса (RC), связанного с приложением.

Синтаксис

HANDLE Loadlmage( HINSTANCE hinst, LPCTSTR IpszName, UINT uType, int cxDesired, int cyDesired, UINT uLoad )

Параметры hinst

HINSTANCE. Дескриптор экземпляра модуля, который содержит загружаемое изображение. Для загрузки изображения OEM этот параметр должен быть установлен равным 0.

IpszName

LPCTSTR. Указатель на строку с нулевым символом в конце, которая содержит имя изображения, подлежащего загрузке. Если параметр u Load включает значение LR_LOADFROMFILE, рассматриваемый параметр должен представлять собой имя файла, который содержит изображение. Если параметр hinst равен 0, младшее слово данного параметра должно обозначать идентификатор изображения OEM, подлежащего загрузке. Идентификаторы изображений OEM определены в файле WTNUSER.H и имеют префиксы, перечисленные в табл. 13.13.

Таблица 13. 13. Префиксы изображений OEM

cxDesired

int. Необходимая ширина пиктограммы или курсора (в пикселях). Если этот параметр равен 0, в функции применяется значение системного параметра SM_CXICON или SM_CXCURSOR

cyDesired

int. Необходимая высота пиктограммы или курсора (в пикселях). Если этот параметр равен 0, в функции применяется значение системного параметра SM_CYICON или SM_CYCURSOR

uLoad

UINT. Определяет способ загрузки изображения. Этот параметр может представлять собой комбинацию значений, перечисленных в табл. 13.15.

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

HANDLE. Дескриптор вновь загруженного изображения. В случае возникновения ошибки возвращаемое значение — NULL.

Таблица 13. 15. Значения параметра uLoad функции Loadlmage

Значение

Описание

LR_CREATEDIBSECTION

Функция должна возвратить раздел DIB растрового изображения, а не совместимое растровое изображение.

LR_DEFAULTCOLOR

Использовать формат представления цвета дисплея.

LR_LOADDEFAULTSIZE

Использовать ширину или высоту, указанную значениями                    • системных параметров для курсоров и пиктограмм, если значения cxDesired или cyDesired установлены равными 0.

LR_LOADFROMFILE

Загрузить изображение из файла, указанного параметром /pszName. Поддерживается только в Windows 2000 и Windows 98.

LRJLOADMAP3DCOLORS

Заменить следующие оттенки серого в изображении соответствующим трехмерным цветом:

Цвет Заменяется цветом

Темно-серый, RGB (128,128,128)       COLOR_3DSHADOW

Серый, RGB (192,192,192)                   COLOR_3DFACE

Светло-серый, RGB (223,223,223)      COLOR_3DLIGHT

LR_LOADTRANSPARENT

Заменить цвет во входе таблицы цветов, относящемся к первому пикселю в изображении, цветом окна, заданным по умолчанию (COLOR_WINDOW). Все пиксели в изображении, которые используют этот вход, приобретают цвет окна, заданный по умолчанию. Это значение применяется только к изображениям, которые имеют соответствующие таблицы цветов.

LR_MONOCHROME

Загрузить изображение в черно-белом представлении.

LR_SHARED

Применить разделяемый дескриптор изображения, если изображение загружено несколько раз. Это значение не следует использовать для изображений, которые загружаются из файла или имеют нестандартные размеры, способные измениться после загрузки.

LR_VGACOLOR

Использовать истинные цвета VGA.

Включаемый файл

winuser.h

См. также

Copy Image, Loadlcon, LoadBitmap

Пример

В следующем примере загружается пиктограмма приложения с использованием функции Loadlmage, когда пользователь выбирает пункт меню Test!. Пиктограмма отображается в клиентской области окна приложения.

См.    \Jtocal-sources\chapl3\J5-2J.txt

LookuplconldFromDirectorv               * Windows 98   * Window* ?nnn

Описание

Функция LookupIconldFromDirectory выполняет поиск в данных пиктограммы или курсора такого экземпляра пиктограммы или курсора, который лучше всего подходит для текущего устройства отображения. Файл ресурса типа RT_GROUP_ICON или RT_GROUP_CURSOR содержит данные пиктограммы или курсора в нескольких аппаратно-зависимых и аппарат-но-независимых форматах. Эта функция ищет в файле ресурса экземпляр пиктограммы или курсора, в наибольшей степени подходящий для текущего устройства отображения, и возвращает его целочисленный идентификатор. Для поиска этого ресурса в модуле применяются функции FindResource и FindResourceEx с макрокомандой   MAKEINTRESOURCE и   с   этим идентифи катором .

Синтаксис

int LookupIconIdFromDirectory( PBYTE presbits, BOOL Ысоп )

Параметры presbits

PBYTE. Указатель на данные каталога пиктограммы или курсора. Функция не проверяет правильность данных ресурса и, если этот параметр указывает на недопустимые данные ресурса, активизирует ошибку общего нарушения защиты или возвращает неопределенное значение.

Ысоп

BOOL. TRUE, если функция должна найти пиктограмму; FALSE при поиске курсора.

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

int. Целочисленный идентификатор ресурса для пиктограммы или курсора, которая в наибольшей степени подходит для текущего устройства отображения.

Включаемый файл

winuser.h

См. также

LookupIconldFromDirectoryEx, FindResource, FindResourceEx, Loadlcon, LoadCursor

Пример

См. пример для функции CreatelconFromResource

LookuplconldFromDirectorvEx            + Windows

Описание

Функция LookupIconldFromDirectoryEx аналогична функции LookupIconldFromDirectory, за исключением того, что в ней можно указать желаемые размеры пиктограммы или курсора.

Синтаксис

int LookupIconIdFromDirectoryEx( PBYTE presbits, BOOL Ысоп, int cxDesired, int cyDesired, UINT u Flags )

Параметры presbits

PBYTE. Указатель на данные каталога пиктограммы или курсора. Функция не проверяет правильность данных ресурса и, если этот параметр указывает на недопустимые данные ресурса, активизирует ошибку общего нарушения защиты или возвращает неопределенное значение.

Ысоп

BOOL. TRUE, если функция должна найти пиктограмму; FALSE — при поиске курсора.

cxDesired

int. Ширина пиктограммы или курсора (в пикселях). Если этот параметр установлен равным 0 и параметр uFlags не включает флажок LR_LOADREALSIZE, применяется значение системного параметра SM_CXICON или SM_CXCURSOR.