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

Синтаксис

BOOL EnumEnhMetaFile( HDC hDC, HENHMETAFILE hemf, ENHMFENUMPROC IpEnhMetaFunc, LPVOID IpData, CONST RECT* IpRect )

Параметры hDC

HDC. Дескриптор контекста устройства (DC), который должен быть передан функции обратного вызова.

hemf

HENHMETAFILE. Дескриптор расширенного метафайла, в котором должно быть выполнено перечисление записей.

IpEnhMetaFunc

ENHMFENUMPROC. Указатель на функцию обратного вызова, определяемую приложением. Описание синтаксиса обратного вызова приведено ниже.

IpData

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

IpRect

CONST RECT*. Указатель на структуру RECT, которая указывает координаты левого верхнего и правого нижнего углов изображения. Размеры этой прямоугольной области указаны в логических единицах длины.

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

BOOL. Если функция обратного вызова успешно перебрала все записи в расширенном метафайле, возвращаемое значение — TRUE; в ином случае - FALSE.

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

wingdi.h

См. также

CIoseEnhMetaFile, GetEnhMetaFile

Синтаксис обратного вызова

int CALLBACK EnhMetaFileProc( HDC hDC, HANDLETABLE* IpHTable, CONST ENHMETARECORD* IpEMFR, int nObj, LPARAM IpData )

Параметры обрг

iTHoro вызова

hDC IpHTable

HDC. Дескриптор контекста устройства (DC) расширенного метафайла. HANDLETABLE*. Указатель на массив дескрипторов HGDIOBJECT, связанных с графическими объектами в метафайле (перьями, кистями и так далее). Первый вход содержит дескриптор расширенного метафайла.

IpEMFR

CONST ENHMETARECORD*. Указатель на одну из записей в метафайле. Эта запись не должна изменяться.

nObj

int. Число объектов с соответствующими дескрипторами в таблице дескрипторов, указанной параметром IpHTable.

IpData

LPARAM. Определяемые приложением данные, переданные параметром IpData функции EnumEnhMetaFile.

Возвращаемое значение обратного вызова

Пример

int. Отличное от нуля — для продолжения перечисления; для прекращения перечисления, возвращаемое значение — 0. В следующем примере загружается расширенный метафайл и отображается в клиентской области окна, как показано на рис. 13.9. Когда пользователь выбирает пункт меню Test!, начинается воспроизведение метафайла с использованием функции EnumEnhMetaFile. Функция обратного вызова перехватывает запись метафайла EMR_CREATEBRUSHINDIRECT, содержащую определение кисти, и заменяет ее кистью светло-серого цвета. Полученные результаты показаны на рис. 13.10.

GdiComment                             • Windows 98   • Windows 2000

Описание

Функция GdiComment позволяет ввести комментарий в расширенный метафайл.

Синтаксис

BOOL GdiCommemX HDC hDC, UENT cbSize, CONST BYTE* IpData )

Параметры hDC

HDC. Дескриптор контекста устройства (DC) для расширенного метафайла.

cbSize

U1NT. Длина буфера комментария в байтах.

IpData

CONST BYTE*. Указатель на буфер, содержащий комментарий.

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

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

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

wingdi.h

См. также

CreateEnhMetaFile

Пример

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

GetBitmapDimensionEx                  • Windows 98   • Windows 2000

Описание

Функция GetBitmapDimensionEx позволяет получить размеры растрового изображения, установленные в предыдущем вызове функции SetBitmapDimensionEx.

Синтаксис

BOOL GetBitmapDimensionEx( HBITMAP hBitmap, LPSIZE IpDimension )

Параметры h Bitmap

HBITMAP. Дескриптор растрового изображения.

IpDimension

LPSIZE. Указатель на структуру SIZE, которая должна принять размеры растрового изображения.

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

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

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

wingdi.h

См. также

SetBitmapDimensionEx

Пример                        ....

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

GetDIBits                                 • Windows 98   • Windows 2000

Описание

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

Синтаксис

int GetDIBits( HDC hDC, НВГГМАР  hbmp, UINT uStartScan, UINT cScanLines, LPVOID IpvBits, LPBITMAPINFO Ipbi, UINT uUsage )

Параметры hDC

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

hbmp

HBITMAP. Дескриптор растрового изображения.           :

uStartScan

UINT. Первая строка развертки, которая должна быть выбрана.

cScanLines

UINT. Число строк развертки, которые должны быть выбраны.

IpvBits

LPVOID. Указатель на буфер, который должен принять данные растрового изображения. Если этот параметр установлен равным NULL, функция передает   размеры   и   формат   растрового   изображения   в   структуру BITMAPINFO, указанную параметром Ipbi.

IpU

LPBITMAPINFO. Указатель на структуру BITMAPINFO, которая указывает нужный формат данных аппаратно-независимого растрового изображения (D1B). Определение структуры BITMAPINFO приведено в описании функции CreateDIBitmap.

uUsage

UINT. Указывает, содержит ли член bmiColors структурыВ1ТМАРШРО значения RGB или индексы палитры. Значение DIB_PAL_COLORS указывает на входы палитры. Значение DIB_RGB_COLORS указывает  на явные цвета.

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

int. Число строк развертки, скопированных из растрового изображения. В случае возникновения ошибки возвращаемое значение — 0.

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

wingdi.h

См. также

SetDIBits, SetDIBitsToDevice, StretchDIBits, CreateDIBitmap

Пример

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

GetEnhMetaFile                          • Windows 98   • Windows 2000

Описание

Функция GetEnhMetaFile позволяет создавать дескриптор для расширенного метафайла, хранимого в файле.

Синтаксис

HENHMETAFILE GetEnhMetaFile( LPCTSTR IpszMetaFile )

Параметры IpszMetaFile

LPCTSTR. Указатель на строку с нулевым символом в конце, которая содержит имя расширенного метафайла.

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

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

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

wingdi.h

См. также

DeleteEnhMetaFile

Пример

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

GetEnhMetaFileBits                       • Windows 98   • Windows 2000

Описание

Функция GetEnhMetaFileBits позволяет получить содержимое расширенного метафайла.

Синтаксис

UINT GetEnhMetaFileBits( HENHMETAFILE hemf, UINT cbBuffer, LPBYTE IpbBuffer)

Параметры hemf

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

cbBuffer

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

IpbBuffer

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

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

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

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

wingdi.h

См. также

SetEnhMetaFileBits

Пример

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

См.    \local-sources\chapl3\13-16. fact

GetEnhMetaFileDescription               • Windows 98   • Windows 2000

Описание

Функция GetEnhMetaFileDescription позволяет получить из расширенного метафайла необязательное текстовое описание.

Синтаксис

UINT GetEnhMetaFileDescriptk>n( HENHMETAFILE hemf, UINT cchBuffer, LPTSTR IpszDescription )

Параметры hemf

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

cchBuffer

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

IpszDescription

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

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

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