只记录 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); // 删除图元句柄 |