CreateEnhMetaFileW 函数 (wingdi.h)

CreateEnhMetaFile 函数为增强格式图元文件创建设备上下文。 此设备上下文可用于存储独立于设备的图片。

语法

HDC CreateEnhMetaFileW(
  [in] HDC        hdc,
  [in] LPCWSTR    lpFilename,
  [in] const RECT *lprc,
  [in] LPCWSTR    lpDesc
);

参数

[in] hdc

增强图元文件引用设备的句柄。 此参数可以 NULL;有关详细信息,请参阅“备注”。

[in] lpFilename

指向要创建的增强图元文件的文件名的指针。 如果此参数 NULL,则增强型图元文件基于内存,在使用 deleteEnhMetaFile 函数删除该参数时会丢失其内容。

[in] lprc

指向 RECT 结构的指针,该结构指定要存储在增强图元文件中的图片尺寸(以 .01 毫米单位为单位)。

[in] lpDesc

指向指定创建图片的应用程序的名称以及图片标题的字符串的指针。 此参数可以 NULL;有关详细信息,请参阅“备注”。

返回值

如果函数成功,则返回值是增强型图元文件的设备上下文的句柄。

如果函数失败,则返回值 NULL

言论

如果文本参数必须使用 Unicode 字符,请使用 CreateEnhMetaFile 函数作为宽字符函数。 如果文本参数必须使用 Windows 字符集中的字符,请将此函数用作 ANSI 函数。

系统使用由 hdc 参数标识的引用设备来记录最初显示图片的设备分辨率和单位。 如果 hdc 参数 NULL,则它使用当前显示设备进行引用。

lprc 参数指向的 RECT 结构的左 和 顶部 成员必须分别小于右 和 底部 成员 矩形边缘的点包含在图片中。 如果 lprcNULL,则图形设备接口(GDI)将计算应用程序绘制的图片周围的最小矩形的尺寸。 应尽可能提供 lprc 参数。

lpDesc 参数指向的字符串必须包含应用程序名称和图片名称之间的空字符,并且必须以两个 null 字符结尾,例如“XYZ 图形编辑器\0Bald Eagle\0\0”,其中 \0 表示 null 字符。 如果 lpDescNULL,则增强型图元文件标头中没有相应的条目。

应用程序使用此函数创建的设备上下文将图形图片存储在增强的图元文件中。 标识此设备上下文的句柄可以传递给任何 GDI 函数。

应用程序将图片存储在增强的图元文件中后,可以通过调用 PlayEnhMetaFile 函数在任何输出设备上显示图片。 显示图片时,系统会使用由 lprc 参数指向的矩形以及引用设备中的分辨率数据来定位和缩放图片。

此函数返回的设备上下文包含与任何新设备上下文关联的相同默认属性。

应用程序必须使用 GetWinMetaFileBits 函数将增强的图元文件转换为较旧的 Windows 图元文件格式。

增强型图元文件的文件名应使用 .emf 扩展名。

例子

有关示例,请参阅 创建增强型图元文件

注意

wingdi.h 标头将 CreateEnhMetaFile 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 wingdi.h (包括 Windows.h)
Gdi32.lib
DLL Gdi32.dll

另请参阅

CloseEnhMetaFile

DeleteEnhMetaFile

GetEnhMetaFileDescription

GetEnhMetaFileHeader

GetWinMetaFileBits

图元文件函数

图元文件概述

PlayEnhMetaFile

RECT