如何清空DC的内容?

feng0hua0 2009-03-12 10:10:37

IntPtr dc1 = CreateDC("DISPLAY", null, null, (IntPtr)null);
//创建显示器的DC
g = Graphics.FromHdc(dc1);


在这里创建了一个显示器的DC,请问在屏幕上绘制了图形之后,如何清空DC的内容,就是把屏幕还原到DC创建之前的状态.
...全文
236 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
feng0hua0 2009-03-12
  • 打赏
  • 举报
回复

GraphicsState saveDC;//设置为全局变量

private void Form1_Load(object sender, EventArgs e)
{
IntPtr dc1 = CreateDC("DISPLAY", null, null, (IntPtr)null);
g = Graphics.FromHdc(dc1);
saveDC = g.Save();
}

private void button1_Click(object sender, EventArgs e)
{
g.DrawLine(Pens.Blue, 0, 100, 200, 300);
}

private void button2_Click(object sender, EventArgs e)
{
g.Restore(saveDC);
}


按下BUTTON1后会绘制直线,但是在按下BUTTON2的时候,屏幕上的直线还是没有被清空,是不是少了哪个步骤?..
谢谢.
cppfaq 2009-03-12
  • 打赏
  • 举报
回复
适时save,然后restore:
IntPtr dc1 = CreateDC("DISPLAY", null, null, (IntPtr) null);
//创建显示器的DC
Graphics g = Graphics.FromHdc(dc1);
GraphicsState savePoint = g.Save();

//绘制图形
g.DrawLine(Pens.Blue, 0, 100, 200, 300);

//还原到绘制前的状态
g.Restore(savePoint);

111,126

社区成员

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

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

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