Поделиться через


Функция CreateEnhMetaFileA (wingdi.h)

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

Синтаксис

HDC CreateEnhMetaFileA(
  [in] HDC        hdc,
  [in] LPCSTR     lpFilename,
  [in] const RECT *lprc,
  [in] LPCSTR     lpDesc
);

Параметры

[in] hdc

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

[in] lpFilename

Указатель на имя создаваемого расширенного метафайла. Если этот параметр имеет значение NULL, расширенный метафайл основан на памяти и его содержимое теряется при удалении с помощью функции DeleteEnhMetaFile .

[in] lprc

Указатель на структуру RECT , указывающую размеры (в 0,01 миллиметровых единицах) рисунка, который будет храниться в расширенном метафайле.

[in] lpDesc

Указатель на строку, указывающую имя приложения, создавшего рисунок, а также заголовок рисунка. Этот параметр может иметь значение NULL; Дополнительные сведения см. в разделе Примечания.

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

Если функция выполняется успешно, возвращаемое значение является дескриптором контекста устройства для расширенного метафайла.

Если функция завершается сбоем, возвращается значение NULL.

Комментарии

Если текстовые аргументы должны использовать символы Юникода, используйте функцию CreateEnhMetaFile в качестве функции расширенных символов. Если текстовые аргументы должны использовать символы из набора символов Windows, используйте эту функцию как функцию ANSI.

Система использует эталонное устройство, определенное параметром hdcRef , для записи разрешения и единиц устройства, на котором первоначально появилось изображение. Если параметр hdcRef имеет значение NULL, для справки используется текущее устройство отображения.

Левый и верхний элементы структуры RECT, на которые указывает параметр lpRect, должны быть меньше правых и нижних элементов соответственно. Точки вдоль краев прямоугольника включаются в рисунок. Если lpRect имеет значение NULL, интерфейс графического устройства (GDI) вычисляет размеры наименьшего прямоугольника, который окружает рисунок, нарисованный приложением. По возможности следует указать параметр lpRect .

Строка, на которую указывает параметр lpDescription, должна содержать символ NULL между именем приложения и именем рисунка и заканчиваться двумя символами NULL, например "XYZ Graphics Редактор\0Bald Eagle\0\0", где \0 представляет пустой символ. Если lpDescription имеет значение NULL, соответствующая запись в заголовке расширенного метафайла отсутствует.

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

После того как приложение сохраняет изображение в расширенном метафайле, оно может отобразить его на любом устройстве вывода, вызвав функцию PlayEnhMetaFile . При отображении рисунка система использует прямоугольник, на который указывает параметр lpRect , и данные о разрешении с эталонного устройства для размещения и масштабирования рисунка.

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

Приложения должны использовать функцию GetWinMetaFileBits для преобразования расширенного метафайла в старый формат метафайла Windows.

Имя файла расширенного метафайла должно использовать расширение .emf.

Примеры

Пример см. в разделе Создание расширенного метафайла.

Примечание

Заголовок wingdi.h определяет CreateEnhMetaFile в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел

CloseEnhMetaFile

DeleteEnhMetaFile

GetEnhMetaFileDescription

GetEnhMetaFileHeader

GetWinMetaFileBits

Функции метафайлов

Общие сведения о метафайлах

PlayEnhMetaFile

RECT