Прототип варианта 17 - Анализатор структуры метафайла, страница 2

Функция

Описание

CloseEnhMetaFile

Закрывает контекст устройства расширенного метафайла и получает манипулятор метафайла

CopyEnhMetaRle

Копирует расширенный метафайл

CloseMetaFile

Закрывает контекст устройства метафайла и возвращает манипулятор метафайла

CopyMetaFile

Копирует метафайл

CreateEnhMetaFile

Создает контекст устройства расширенного метафайла, готового к выводу

DeleteEnhMetaFile

Удаляет расширенный метафайл

DeleteMetaFile

Удаляет метафайл

EnumEnhMetaFile

Перечисляет записи расширенного метафайла

EnumMetaFile

Перечисляет записи метафайла

GdiComments

Включает комментарий в расширенный метафайл

GetEnhMetaFile

Получает манипулятор для заданного метафайла на диске

GetEnhMetaFileBits

Читает данные из расширенного метафайла в блок памяти

GetEnhMetaFileDescription

Получает описание расширенного метафайла, если оно существует

GetEnhMetaFileHeader

Заполняет структуру ENHMETAHEADER для расширенного метафайла

GetEnhmetaFilePaletteEntries

Читает содержимое палитры для расширенного метафайла

GetMetaFile

Получает манипулятор метафайла для файла DOS, содержащего данные метафайла

GetMetaFileBitsEx

Читает данные из метафайла в блок памяти

GetWinMetaFileBits

Преобразует расширенный метафайл в стандартный

PlayEnhMetaFile

Воспроизводит команды расширенного метафайла

PlayEnhMetaFileRecord

Воспроизводит одну запись расширенного метафайла

PlayMetaFile

Воспроизводит команды метафайла

PlayMetaFileRecord

Воспроизводит одну запись метафайла

arSetEnhMetaFileBits

Создает манипулятор расширенного метафайла для блока памяти, содержащего метафайл

SetMetaFileBitsEx

Создает манипулятор метафайла для блока памяти, содержащего метафайл

SetWinMetaFileBits

Преобразует стандартный метафайл в расширенный

Метафайлы и системы координат

Если загрузить метафайл в графическое поле, вы заметите, что он почти всегда масштабируется по размерам графического поля. Как это происходит, если метафайл — не более чем набор графических команд GDI с фиксированными координатами? Ведь метафайл не может заранее определить размер области, в которой он будет воспроизведен, или узнать выбранную систему координат — или все-таки может?

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

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

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