vc++图像保存,重绘

 

新建mfc应用程序,单文档

增加绘图

分别增加命令响应

添加成员变量UINIT

 

图形可以运行,如何保存呢?(一个集合类,CPtArt)

 用一个类的对象来保存一个图形的三个要素

所以插入一个新的类(通常的类)

增加三个成员变量,第一个类型,设置为公有的

也可以在函数中直接写,添加起点,终点

让用户在构造的时候直接传递进来给这三个成员变量赋值

 

 然后在原文件当中,对成员变量进行赋值

(这样构造一个类的对象来保存一个图形的三个要素)

要想增加一个指针用add,要想取出原数用GetAt

CObArray

可以利用CPtrArray存储一个对象的地址

首先构造一个graph对象,在添加一个成员变量

用集合类的对象调用add方法保存

 

 将集合类元素中的取出来

首先创建一个画刷(将onbuttonup中的这一句复制到ondraw中)

将透明的画刷选到设备描述表中

做一个for循环将集合类当中的取出来(做一个switch语句根据所保存的绘画类型去绘制图形)

虽然说保存了对象的地址,但是对象graph出了大括号就已经析构了

 

首先在view类中,1 构造了一个集合类的对象;

2构造了一个graph对象,是在onlbuttonup函数中构造的,是一个局部对象

在栈中分配空间

3。第三步,当调用集合类中add方法,graph对象他所在内存的地址,当执行之后会析构掉,生命周期结束

 

 如何解决这个问题,用一个指针类型的变量,是用堆的保存,当被析构的时候,内容已经被传递了

定义指针类的对象,调用add方法

 

 当窗口位置发生变化的时候,图像位置不变

 

当窗口重绘的时候,会调用ondraw函数(虚函数)

 增加onpaint

如何使窗口具有滚动能力

本程序已经有cview

找编辑菜单下的替换

我们设定的页面空间或者说逻辑空间的坐标点如何转换为设备空间的坐标点

四种坐标空间:世界坐标系空间,页面空间,设备空间,物理设备空间

第七章数字信号处理仿真318-7.8/317-7.2

posted @ 2018-11-27 14:50  Jaoany  阅读(655)  评论(0编辑  收藏  举报