CMetaFileDC

CObject
 └CDC
    └CMetaFileDC

Windows图元文件包含了一序列图形设备接口(GDI)命令,可以用来创建需要的图像或文本。
为了实现Windows 图元文件,首先要创建一个CMetaFileDC 对象。调用CMetaFileDC构造函数,然后调用Create成员函数,以创建Windows图元文件设备上下文,并将它附加给CMetaFileDC 对象。
下一步将希望重复的CDC GDI命令序列发送给CMetaFileDC 对象。仅仅那些能够创建输出的GDI命令,例如MoveTo或LineTo,才能够使用。
在给图元文件发送了期待的命令后,调用Close成员函数,它将关闭图元文件设备上下文,并返回图元文件的句柄。之后就可以处理CMetaFileDC 对象。
CDC::PlayMetaFile能够使用图元文件的句柄,来重复播放图元文件。这个图元文件也可以由Windows函数,如CopyMetaFile进行操作,它将把图元文件拷贝到磁盘中。
当不再需要图元文件时,使用DeleteMetaFile Windows函数将其从内存中删除。
也可以实现CMetaFileDC 对象,以便它能够处理输出调用及GDI属性调用,如GetTextExtent。这样,图元文件就有更多的弹性,并能够更容易重新使用一般的GDI代码,它经常包含了输出和属性调用的混合。CMetaFileDC类从CDC继承了两个设备上下文,m_hDC和m_hAttribDC。m_hDC设备上下文处理所有的CDC GDI输出调用,而m_hAttribDC设备上下文处理所有的CDC GDI属性调用。一般而言,这两个设备上下文属于同一个设备。在CMetaFileDC情形下,属性DC缺省时设置为NULL。
另创建一个设备上下文,以指向屏幕、打印机或不同于图元文件的其它设备,然后可以调用SetAttribDC成员函数,将新设备上下文与m_hAttribDC相关联。GDI调用的信息将直接发送到新的m_hAttribDC值中,而输出GDI调用也将送给代表图元文件的m_hDC值。
要了解有关CMetaFileDC更多信息,请参阅联机文档“Visual C++程序员指南”中的“设备上下文”。
#include <afxext.h>

CMetaFileDC类的成员

构造函数
CMetaFileDC构造一个CMetaFileDC对象

初始化
Create创建Windows图元文件设备上下文,并将其附加给CMetaFileDC对象
CreateEnhanced为增强格式的图元文件创建图元文件设备上下文

操作
Close关闭设备上下文,并创建图元文件的句柄
CloseEnhanced关闭增强的图元文件设备上下文,并创建增强格式的图元文件