IntPtr dc1 = CreateDC("DISPLAY", null, null, (IntPtr)null);
//创建显示器的DC
g = Graphics.FromHdc(dc1);
在这里创建了一个显示器的DC,请问在屏幕上绘制了图形之后,如何清空DC的内容,就是把屏幕还原到DC创建之前的状态.

解决方案 »

  1.   

    适时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);
      

  2.   


            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的时候,屏幕上的直线还是没有被清空,是不是少了哪个步骤?..
    谢谢.