mfc中 绘图所涉及到得保存问题

mfc中 绘图所涉及到得保存问题 当我们在消息处理函数中绘制图形 如果不加以保存 当窗口尺寸等发生改变时

窗口发生重绘 将不会保存我们原来绘制的图形 图形被擦出

 

涉及到MFC绘图的保存 我们一般有3中方法

 

法一:我们可以通过保存图像中一些关键信息来保存图像 这些关键信息一般可以保存在类中(也可以是结构体) 然后在

CView中的OnDraw函数中进行绘制 这种方式根据程序员的习惯不同 实现方法也会不经相同

 

法二:

通过CMetaFileDC来保存图形

 

CMetaFileDC 继承至CDC类 也就有一系列的绘图和相关处理函数

这个类主要是可以保存图形的绘制过程 然后可以调用CDC类中的PlayMetaFile方法 既可以实现图像的显示及保存 .这种方法还可以帮我们保存和读取图像

 

法三:利用兼容DC

兼容DC一般用来贴图 我们可以利用兼容DC来帖一张位图当做客户区的背景 也可以用来保存图像(每次将有所绘制的图像的位图来贴在客户区上就实现了图像保存)

 

下面是一个示例程序的Cview类和自定义类(方法一)

 

 

///MFC SDI程序 Cview类  删除了一些未改变内容的方法

 

这个程序实现了用户选择图形进行绘制 用户选择什么 就绘制什么 并保存图形  一下是程序运行图

相关源程序 可以

 

相关源程序 可以查看我的资源 :MFC SDI程序绘图的保存

 

你可能感兴趣的:(Visual,C++学习笔记)