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

原文地址:https://www.cnblogs.com/fanglijiao/p/10026370.html

时间: 2024-08-05 14:07:51

vc++图像保存,重绘的相关文章

Windows开发进阶之VC++中如何实现对话框的界面重绘

技术:Windows 系统+Visual studio 2008 概述 应用程序界面是用户与应用程序之间的交互的桥梁和媒介,用户界面是应用程序中最重要的组成部分,也是最为直观的视觉体现.对用户而言,界面就是应用程序,界面设计的好坏,会直接影响应用程序的可用性,从而影响用户的体验. 在软件开发过程中,对界面的设计椅子都是一项很重要的技术,如今的应用软件界面可谓是“丰富多彩.美丽绝伦”,如大家熟悉的360安全卫士.腾讯QQ聊天软件.Visual C++ 编程词典软件等,都是非常不同于普通的对话框应用

【转】VC的MFC中重绘函数的使用总结(整理)

原文网址:http://www.cnblogs.com/x8023z/archive/2008/12/09/mfc33.html 在刷新窗口时经常要调用重绘函数MFC提供了三个函数用于窗口重绘InvalidateRect(&Rect)Invalidate()UpdateWindow()当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_NCPAINT(通知非客户区有变化)--WM_NVPAINT系统会自己搞定--WM_PAINT消息对应的函数是OnPain

高性能WEB开发:重排与重绘

DOM编程可能最耗时的地方,重排和重绘. 1.什么是重排和重绘 浏览器下载完页面中的所有组件--HTML标记.JavaScript.CSS.图片之后会解析生成两个内部数据结构--DOM树和渲染树. DOM树表示页面结构,渲染树表示DOM节点如何显示.DOM树中的每一个需要显示的节点在渲染树种至少存在一个对应的节点(隐藏的DOM元素disply值为none 在渲染树中没有对应的节点).渲染树中的节点被称为"帧"或"盒",符合CSS模型的定义,理解页面元素为一个具有填充

iOS 视图:重绘与UIScrollView(内容根据iOS编程编写)

我们继续之前的 Hypnosister 应用,当用户开始触摸的时候,圆形的颜色会改变. 首先,在 JXHypnosisView 头文件中声明一个属性,用来表示圆形的颜色. #import "JXHypnosisView.h" @interface JXHypnosisView () /** 颜色 */ @property (nonatomic,strong) UIColor * circleColor; @end @implementation JXHypnosisView - (in

Android学习Scroller(五)——详解Scroller调用过程以及View的重绘

MainActivity如下: package cc.ww; import android.os.Bundle; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.RelativeLayout; import android.widget.RelativeLayout.LayoutParams; import android.app.Activity;

Python游戏引擎开发(二):创建窗口以及重绘界面

开发本地应用之前,我们得先有个窗口,用于显示界面.其次我们还得实现重绘机制,使游戏不停地刷新,达到动态化的目的.所以我们的引擎开发的第一个阶段就是创建窗口和重绘界面. 以下是之前的文章: Python游戏引擎开发(一):序 Qt的渲染机制 在上一章<序>中我们讲到本次开发用到了PyQt,也就是Qt的Python版.在开始实现引擎功能之前我们要先了解一下Qt,这里先了解渲染机制. 在Qt中,绘画用到的类叫做QPainter,顾名思义,就是个画家类吧.在这个类中,提供了非常多的方法用于操控这个&q

android,view的重绘

============问题描述============ mars数独制作视频,页面重绘的时候出现了问题,"Unfortunately,shudu08 has stopped."感觉是某个xml文件没有配置好,求高手帮助纠正错误,顺便告诉下android运行的基本流程.我是纯小白,高手勿喷 进入界面: 点击空白处: 报错: 代码如下: Game.java package com.liuyuan.shudu08; public class Game { private final Str

窗体皮肤实现 - 重绘窗体非客户区(三)

窗体边框基本的绘制和控制完成,在第二篇中主要遗留的问题. 标题区域图标和按钮没绘制 缩放时客户区显示有问题 解决完下面的问题,皮肤处理基本完整.大致的效果GIF GIF中TShape的颜色表现有些问题,实际是正常的. 绘制标题区域内容 获取标题有效区域 绘制窗体图标 绘制按钮 绘制标题 标题区域主要考虑窗体是否在最大化状态,最大化后实际的标题绘制区域会有变化.可以通过 IsZoomed 或 GetWindowLong(Handle, GWL_STYLE) and WS_MAXIMIZE = WS

窗体皮肤实现 - 重绘窗体非客户区(二)

第一个实现了基本处理.窗体边框的宽度有些肥大,需要进行瘦身. 实现:     1.改变外框线宽度 (WM_NCCALCSIZE)     2.改变外框样式 (WM_WINDOWPOSCHANGING) 通过 WM_NCCALCSIZE 消息可以实现目的. procedure WMNCCalcSize(var message: TWMNCCalcSize); message WM_NCCALCSIZE; procedure TTest.WMNCCalcSize(var message: TWMNC