C#用鼠标画的线应该怎么保存
public partial class Draw : Form
{
Graphics myGraphics;
int x;
int y;
int oldX;
int oldY;
Pen myPen;
bool ifDrwa;
Stack<Point> pointStack;//用来保存所有鼠标画过的点,在重绘时候画
public Draw()
{
ifDrwa = false;//设置为不画
myGraphics = this.CreateGraphics();
myPen=new Pen(Color.Black);
InitializeComponent();
this.SetDesktopLocation(0, 0);
pointStack = new Stack<Point>();
// this.Size.Width = 768;
// this.Size.Height = 1024;
}
private void Draw_MouseDown(object sender, MouseEventArgs e)
{
ifDrwa = true;//鼠标按下时候才开始画
oldX = e.X;
oldY = e.Y;
}
private void Draw_MouseMove(object sender, MouseEventArgs e)
{
if (ifDrwa == true)
{
//将鼠标划过的地方全部入栈
Point tempPoint = new Point(this.oldX, this.oldY);
pointStack.Push(tempPoint);//鼠标不停的滑动,就不停的入栈
myGraphics.DrawLine(myPen, oldX, oldY, e.X, e.Y);
//画完后,将当前的鼠标位置记下
oldX = e.X;
oldY = e.Y;
}
}
private void Draw_MouseUp(object sender, MouseEventArgs e)
{
//若鼠标建起,则停止画
ifDrwa = false;
}
画线可以实现,但是重绘时候就没了,希望知道怎么保存先前画的线
问题点数:20、回复次数:6Top
1 楼liujia_0421(SnowLover)回复于 2006-12-03 01:07:23 得分 10
TO:
画线可以实现,但是重绘时候就没了,希望知道怎么保存先前画的线
保存起点和终点的坐标不就行了..Top
2 楼zhaochong12(超级大笨鸟)回复于 2006-12-03 08:09:48 得分 0
--#... 用arraylist保存之前画过的座标点Top
3 楼Smiletozxj()回复于 2006-12-03 10:13:19 得分 0
你们也看到我的程序了,我上面用栈来保存的。但是不光是保存“上次”的的点,而且还要保存“上上次”和“上上...次”的点,这个时候该怎么办呢?
Top
4 楼bjgzxx(食人一族)回复于 2006-12-03 10:19:26 得分 10
zhaochong12(笨鸟) 完全正确Top
5 楼pfworld(菜菜来了)回复于 2006-12-03 14:20:11 得分 0
zhaochong12(笨鸟) 完全正确
或者放入一个纪录文件!xxx.txtTop
6 楼jl_7777()回复于 2006-12-03 22:20:51 得分 0
Bitmap b=new Bitmap(this.Width,this.Height);
Graphics g2=Graphics.FromImage(b);
然后画的时候同时在g2里画,完了再保存b就是了Top




