只记录 GDI 绘图操作,不能再次进行缩放。
函数 | 意义 |
---|---|
CreateMetaFile(path) | 创建图元文件设备场景,以记录 GDI 绘图操作
若 path 为空,则创建在内存中 |
CloseMetaFile(dc) | 关闭图元文件设备场景,返回文件句柄 |
PlayMetaFile(dc,mf) | 在另一场景上重复图元文件记录的绘图操作
一般通过改变场景原点位置,实现重复绘图 |
CopyMetaFile(dc,path) | 复制图元文件句柄
若 path 为空,则创建在内存中 |
DeleteMetaFile(mf) | 删除图元文件句柄,对于磁盘上的文件并不删除 |
GetMetaFile(path) | 返回文件中的图元文件句柄,出错返回 0 |
GetMetaFileBitsEx(mf,size,buff) | 将图元文件字节流存入缓冲区 |
除记录 GDI 绘图操作以外,还记录一个矩形范围。
在回放时若选用不同的矩形范围,可实现移动绘图位置,改变绘图比例的目的。
CreateEnhMetaFile(...) | 创建增强型图元文件设备场景 |
CloseEnhMetaFile(dc) | 关闭增强型图元文件设备场景,返回文件句柄 |
PlayEnhMetaFile(dc,mf,rect) | 在另一场景上回放增强型图元文件记录的绘图操作
创建时所定义的矩形区域将进行缩放以与此处 rect 定义的区域相吻合 |
CopyEnhMetaFile(mf,path) | 复制增强型图元文件句柄
若 path 为空,则复制在内存中 |
DeleteEnhMetaFile(mf) | 删除增强型图元文件句柄,对于磁盘上的文件并不删除 |
GetEnhMetaFile(path) | 返回文件中的增强型图元文件句柄,出错返回 0 |
GetEnhMetaFileBits(mf,size,buf) | 将增强型图元文件字节流存入缓冲区 |
GetEnhMetaFileDescription(mf,size,buf) | 返回增强型图元文件的说明信息 |
CreateEnhMetaFile(dc,path,rect,Description) |
参数 | 意义 |
---|---|
dc | 参照另一场景的相关信息,如分辨率、大小等
如为空,则以屏幕为参照 |
path | 存储图元的文件名,.EMF 后缀
如为空,则在内存中创建 |
rect | 定义一个矩形区域,以作为回放时的参照尺寸
度量单位固定为:0.01 毫米 |
Description | 说明,可为空,字符串类型,格式如下:
应用程序名、空字符、图元文件说明、空字符、空字符 |
dc = CreateMetaFile(nil); // 建立图元文件
lineto(dc,1000,1000); // 进行绘图操作 meta = CloseMetaFile(dc); // 返回图元句柄 dc = getdc(handle); // 创建新的设备场景 PlayMetaFile(dc,meta); // 回放绘图操作 ReleaseDC(dc); // 释放设备场景 DeleteMetaFile(meta); // 删除图元句柄 |