1.想实现回退前进的功能。想法是用命令模式。放一个栈把实现的画图功能都放进去。但如果进行了很多步的话,这样实现会不会效率太低。2.想实现画图的“橡皮筋”功能。(就是鼠标移动时,即时绘制,直到单击确定)。不清楚怎么做。如果每移动一次都重画整个桌布上所有的画图步骤的话,会不会效率太低了。3.确定一个东西。在C#中是不是应该将绘制的东西都放在OnPaint中,这样是不是画布大小改变时,能实现自动的重绘。4.如果有做过类似东西的话,请给个具体实现的思路。我现在的思路是在栈中放绘制过的所有步骤。然后统一绘制。橡皮筋功能,我想临时建立一个控件,在上面实现。然后确定后在绘制到画布上。但不管怎样我都觉得会使得效率过低,希望大家给点意见,谢谢
解决方案 »
- WinForm TextBox 自动完成
- 内网IP 如何转成外网IP
- WINFORM怎样做WebForm的DataList效果
- 如何将ListBox 里面的列举选项全部清空?
- 大家帮帮忙啦,详细解说下,3Q3Q
- 帮忙填一下这个表格 (员工自我鉴定表)
- 如何通过datagrid中的记录查询其他数据库!
- 装载图片
- 大虾们简单问题: 先建立文件,然后删掉文件,就会出异常: File.Create(fname); File.Delete(fname);
- 想完成类似ToolTip的功能,遇到问题~~~~~~~~~
- 100分求 C#.net 里面使用 FreeTextBox 的例子给相关提示也行
- ActiveReport动态更改控件的text属性,如何?
http://dev.csdn.net/article/35/35409.shtm
橡皮线:双缓存技术!
重绘吗:好象使用了双缓存技术就不会了!
建立图形的类,使用对象保存图形的信息,然后按照绘制顺序保存在ArrayList中!
保存文件可以使用序列化!
恩,双缓冲怎么实现橡皮线?双缓冲是将image在内存中绘制好再绘制到显示器上。那橡皮线需要反复显示怎么解决。
能给点代码看看吗??
谢谢。。
在你要绘图窗体的构造函数中添加://**** 在缓存区绘制控件,然后再显示出来,可以避免刷新时屏幕的闪烁;
this.SetStyle(ControlStyles.AllPaintingInWmPaint,true);
this.SetStyle(ControlStyles.DoubleBuffer,true);
this.SetStyle(ControlStyles.UserPaint,true);
//****这样你在你的mousemove函数中该重绘的重绘
就不会产生屏幕的闪烁!