GetWinMetaFileBits函数将增强格式记录从元文件转换为Windows格式记录,并将转换的记录存储在指定的缓冲区中。
UINT GetWinMetaFileBits(
HENHMETAFILE 【HEMF】, | //处理增强的图元文件 |
UINT 【cbBuffer】, | // 缓冲区大小 |
LPBYTE 【lpbBuffer】, | //指向缓冲区的指针 |
INT 【fnMapMode】, | //映射模式 |
HDC 【hdcRef】 | //参考设备上下文的句柄 |
); |
参数
【HEMF】
识别增强的图元文件。
【cbBuffer】
指定要复制转换的记录的缓冲区的大小(以字节为单位)。
【lpbBuffer】
指向要复制转换记录的缓冲区。如果【lpbBuffer】为NULL,则GetWinMetaFileBits返回存储转换的图元文件记录所需的字节数。
【fnMapMode】
指定在转换图元文件中使用的映射模式。
【hdcRef】
标识参考设备上下文。
返回值
如果函数成功并且缓冲区指针为NULL,则返回值是存储转换记录所需的字节数;如果函数成功并且缓冲区指针是有效的指针,则返回值是以元字节表示的元文件数据的大小。
如果函数失败,返回值为零。
备注
此函数将增强的图元文件转换为Windows格式的图元文件,以便其图片可以显示在识别旧格式的应用程序中。
Windows使用参考设备上下文来确定转换图元文件的分辨率。
GetWinMetaFileBits功能不会使增强的图元文件句柄无效。应用程序应调用DeleteEnhMetaFile功能,在不再需要时释放句柄。
由于Windows格式的图元文件的限制,一些信息可能在检索的图元文件内容中丢失。例如,增强型图元文件中的PolyBezier函数的原始调用可能会转换为对Windows格式元文件的折线函数的调用,因为Windows格式中没有等效的PolyBezier函数。
Windows 3。【x】应用程序定义存储在Windows格式图元文件中的图片的视口原点和范围。因此,GetWinMetaFileBits创建的Windows格式记录不包含SetViewportOrgEx和SetViewportExtEx功能。但是,GetWinMetaFileBits确实为SetWindowExtEx和SetMapMode功能创建Windows格式记录。
要创建可扩展的Windows格式的元文件,请指定MM_ANISOTROPIC作为【fnMapMode】参数。
元文件图片的左上角始终映射到参考设备的原点。
也可以看看
DeleteEnhMetaFile, PolyBezier, 折线, SetMapMode, SetViewportOrgEx, SetViewportExtEx, SetWindowExtEx, SetWinMetaFileBits