关于重写OnPaint()的问题

sumaert 2005-12-02 10:42:08
我刚刚开始学习c#编程
写了一给简单的绘图程序
在窗体上绘图之后如果用别的应用程序界面覆盖绘图程序的界面
原本绘制的图形就会消失;
一般情况下可以重写OnPaint(),但怎样重写才能使我的绘图程序恢复到被覆盖前的手绘的图形
c#中有提供把窗体的界面保存为图形的方法吗?

求各位高手帮助。
谢谢先。
...全文
259 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiaoci 2005-12-02
  • 打赏
  • 举报
回复
要保存绘制的图形,这要看你怎么处理手绘了

比方:你可以按线条保存图形,用户按下按钮时记录起点,

用户拖动,释放按钮后记录结束点,这样你就得到了一系列的线

在OnPaint时,一次把这些线再绘制一遍就OK了

当然你也可以按点保存图形,都是可以的
sumaert 2005-12-02
  • 打赏
  • 举报
回复
谢谢!!!
掐死温柔 2005-12-02
  • 打赏
  • 举报
回复
查MSDN去.
Macosx 2005-12-02
  • 打赏
  • 举报
回复
复杂的也没研究过 对于画线可以用一系列的数组保存 参考programming windows with C# 不过在实际中不一定适用
BearRui 2005-12-02
  • 打赏
  • 举报
回复
直接画在图片上就不会出现你那样的情况了
-------------
private void button1_Click(object sender, System.EventArgs e)
{
Bitmap m_localBitmap = new Bitmap(this.ClientRectangle.Width,this.ClientRectangle.Height);
this.BackgroundImage = m_localBitmap;
Graphics g = Graphics.FromImage(m_localBitmap);
g.Clear(BackColor);
Pen p=new Pen(Color.Black,5);
g.DrawLine(p,0,0,50,100);

p.Dispose();
}
sumaert 2005-12-02
  • 打赏
  • 举报
回复
谢谢
如果是直接在窗体上绘图
怎么保存
BearRui 2005-12-02
  • 打赏
  • 举报
回复
//保存Graphics在pictureBox背景图上画的图。

pictureBox1.Image=Image.FromFile(@"E:\1.bmp");
Graphics g=Graphics.FromImage(pictureBox1.Image);

Pen p=new Pen(Color.Black,5);
g.DrawLine(p,0,0,50,100);
pictureBox1.Refresh();
pictureBox1.Image.Save(@"E:\123.bmp");
sumaert 2005-12-02
  • 打赏
  • 举报
回复
谢谢,但是怎么保存手绘的图形
tiaoci 2005-12-02
  • 打赏
  • 举报
回复
手绘的图形要保存起来的

在OnPaint里面再绘制一下保存起来的手绘图形
sumaert 2005-12-02
  • 打赏
  • 举报
回复
小弟虚心求教高手
帮帮忙阿

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧