现在的位置: 首页 > 综合 > 正文

孙鑫VC学习笔记:第十一讲 (六) 图形重绘方法二 利用元文件

2013年03月06日 ⁄ 综合 ⁄ 共 1025字 ⁄ 字号 评论关闭

介绍两种保存图形与重绘图形的方式
第一种,要利用要一个类 CMetaFileDC
第一步创建一个CMetaFileDC 对象。
接着调用CMetaFileDC 构造器,然后再调用Create 函数 创建一个设备上下文与CMetaFileDC 对象关联起来。

下一步给CMetaFileDC 对象发送一系列的CDC命令

在为元文件发送完命令之后,调用Close成员函数关闭元文件的设备上下文,
并返回一个元文件 的句柄。接着就可以处理CMetaFileDC 对象。

CDC::PlayMetaFile 方法可以用来使用元文件句柄播放元文件,我们可以多次调用本函数

介绍一些与本操作相关的成员函数
--------------------------------------------------------------------------------
CMetaFileDC::Create
 BOOL Create(LPCTSTR lpszFilename = NULL );
 如果指定一个字符串,那么就指定了元文件的文件名,用来保存元文件
 如果变量pszFilename 为空,那么就会在内存中创建一个元文件
 
--------------------------------------------------------------------------------
CMetaFileDC::Close
关闭一个设备上下文,返回一个DC句柄。

--------------------------------------------------------------------------------
用元文件来重绘图形的具体步骤:
1.先在CGraphicView类中,增加一个CMetaFileDC变量m_dcMetaFille
2.在CGraphicView类的构造函数中调用m_dcMetaFille的Create()方法,
  Create方法的参数的NULL时创建一个内存的元文件
3.在CGraphicView类的OnLButtonUp()方法中,写入绘图命令,
   OnLButtonUp()方法代码如下:
4.窗口重绘时,即在OnDraw()函数中,去关闭元文件,从而获得元文件句柄。
  有了元文件的句柄,就可以利用CDC::PlayMetaFile来播放它。
   注意:关闭元文件并不意味着删除元文件。

问题:元文件关闭以后,难道不能再次打开,继续画图? 希望有经验的朋友可以讲解一下这个问题!

【上篇】
【下篇】

抱歉!评论已关闭.