一、重绘的原因即概念:
绘制的东西,只记录在缓存中,没有保存在内存中,在窗口变化的时候(放大缩小,移动,最小化等)
内存将刷新数据,使绘制的东西消失。重绘就是将已经绘制好的图形信息先保存起来,然后重写用
容器类里的 paint(Graphics g){}方法;当窗口变化时,自动调用该方法,就实现了重绘。
二、重绘信息的保存:
可以先创建一个类,定义要保存信息的各种属性,然后定义一个队列,存储单元为刚开始创建的类。
这样,在重绘方法中遍历队列即可实现重绘。
例如在画板中可以定义shapes类,定义颜色,形状,鼠标按下和释放坐标。
public class Shapes(){
int x1,y1,x2,y2;
private String color;
private String type;
}
接着可以创建一个队列:
List<Shapes> list_shape= new ArrayList<Shapes>();
将某个形状对象就可以加入队列中,如 s(为shapes类,里面包含要保存的形状属性信息)
list_shape.add(s);
保存在队列后,就可以在paint(Graphics g){}方法中遍历队列,画出所以形状。
for(int i=0;i<list_shape.size;i++){
//取第i个对象即
Shape shape_i=list_shape.get(i);
}
类似的,五子棋对棋子的重绘,可以将棋子坐标保存到队列中,这样可以方便实现任意
步数的悔棋(而用棋子保存在数组中的标记(1,0-1)来悔棋不能实现)
- 大小: 759.6 KB
分享到:
相关推荐
在IT行业中,条形码是一种广泛使用的编码系统...理解并掌握这些知识点,对于理解和使用"RedrawBarcode"这款条码重绘应用至关重要。无论是开发新的条码应用,还是对现有条码进行二次开发,这些知识都能提供强大的支持。
本文将深入探讨MFC中的“普通窗口重绘”这一关键知识点,包括重绘的原因、过程以及如何在MFC应用中实现窗口重绘。 首先,窗口重绘是一个常见的需求,它通常发生在以下几种情况:窗口被其他窗口覆盖后暴露出来,窗口...
在本文中,我们将深入探讨如何在MFC中重绘常见的控件,包括ListCtrl、Edit和ComboBox,这些都是Windows应用程序开发中的关键组件。 **ListCtrl控件** ListCtrl是一种多功能控件,它可以显示多列数据,类似于电子...
- 提供的"testDuilib"文件可能包含了一些示例代码,展示如何实际应用上述知识点进行控件重绘。 - 可以通过编译运行这些示例,观察和学习其绘制效果,进一步理解和实践控件重绘。 总之,Duilib 控件重绘涉及到控件...
在MFC(Microsoft Foundation Classes...通过以上步骤,你应该能够成功地在MFC应用中实现自定义的Edit重绘,创造出符合设计需求的个性化编辑框。在实践中,可能还会遇到其他具体问题,需要根据实际情况进行调试和优化。
"窗体控件重绘"是这个过程的关键技术,它允许开发者覆盖默认的绘制行为,创建独特的视觉效果。本压缩包包含了Button、Form、CheckBox、ListBox、TabControl和TextBox等常用控件的重绘示例,这些实例代码对于初学者和...
- 重绘操作可能会影响应用性能,因此需要注意优化。例如,减少不必要的重绘,使用双缓冲防止闪烁,以及合理利用控件的透明度和Alpha混合。 5. **代码示例** 在实际开发中,你可能会遇到以下代码片段: ```csharp...
本文将详细探讨如何在VS2017环境下,针对.Net 2.0版本的Combox控件进行重绘操作。 首先,理解“重绘”(Redraw)的概念。在Windows Forms中,当控件的外观需要改变,如颜色、样式或形状时,我们通常会进行重绘。重...
在Windows应用程序开发中,Microsoft Foundation Class (MFC)库提供了一组封装的Windows API控件,其中CListCtrl是用于创建...通过理解和熟练运用重绘机制,我们可以创造出极具个性化的用户界面,提升应用的用户体验。
"控件重绘 C# WinForm控件美化扩展系列之TabControl"的主题聚焦于如何通过自定义控件重绘技术来优化TabControl的显示效果,使其更符合现代应用程序的审美需求。 TabControl是Windows Forms中一个常用且功能丰富的...
在这个场景中,我们关注的是`CMyComboBox`,这是一个自定义的组合框(ComboBox)类,它是MFC中的标准`CComboBox`类的扩展,专门为了实现自定义重绘功能而设计。 在MFC中,`CComboBox`类是用来处理Windows API中的...
然而,有时为了实现自定义的视觉效果或者满足特定的UI需求,我们可能需要对ListView进行重绘。本文将深入探讨如何在C# WinForm环境下对ListView进行重绘。 首先,了解ListView的基本结构。ListView包含Items集合,...
本文将深入探讨如何在C#中实现`TreeView`控件的边框重绘,以创建独一无二的视觉效果。 首先,了解`TreeView`的基本属性和方法。`TreeView`控件具有`Nodes`集合,用于添加、删除或操作节点;`DrawMode`属性可以设置...
C#重绘Windows窗体标题栏和边框 C#重绘Windows窗体标题栏和边框是指使用C#语言来自定义Windows窗体的标题栏和边框的样式。这种技术可以使得Windows应用程序具有更加个性化的界面,类似于QQ、MSN、迅雷等聊天工具的...
然而,有时候我们可能需要自定义ComboBox的外观或者功能,这就涉及到ComboBox的重绘技术。下面将详细介绍C# WinForms中ComboBox重绘的相关知识点。 1. **基本重绘原理** 在.NET Framework中,控件的重绘主要通过...
在Delphi编程中,"重绘非客户区改变窗口外观"是一个高级技术,它允许开发者超越标准窗口样式的限制,自定义窗体的外观,包括标题栏、边框等非客户区部分。这个主题通常涉及到Windows API调用,以及GDI(图形设备接口...
系统默认的滚动条样式可能无法满足所有设计要求,因此开发者经常需要重绘滚动条以实现独特的皮肤效果。本文将深入探讨如何在C# WinForm中实现滚动条的重绘。 首先,我们要理解WinForm中的控件绘制机制。Windows ...
标题"**MFC 重绘CListCtrl、CTreeCtrl的滚动条.rar**"提供的资源正是针对这个需求,实现了滚动条的自定义重绘,以达到与控件完美融合的效果。 滚动条控件在MFC中由CScrollBar类表示,通常会与CListCtrl和CTreeCtrl...
本文将深入探讨`drawRect:`方法及其在iOS重绘视图中的应用,以及与Quartz 2D图形库的结合使用。首先,我们需要理解`drawRect:`方法的原理。 `drawRect:`是UIKit框架中的一个方法,它属于UIView类。当一个UIView的`...
本压缩包"VC++MFC重绘控件.zip"专注于MFC控件的自定义重绘技术,这是一项关键技能,可以帮助开发者创建具有个性化外观和感觉的应用程序。 首先,让我们逐一了解包含的控件及其重绘知识: 1. **CButton**:CButton...