GDI+实现双缓冲绘图方法一

时间:2021-08-27 10:05:09
        private void Form5_MouseMove(object sender, MouseEventArgs e)
        {
            int intOX = rectDrawArea.X;
            int intOY = rectDrawArea.Y;
            rectDrawArea.X = e.X;
            rectDrawArea.Y = e.Y;
            Debug.WriteLine(rectDrawArea.ToString());
            //Invalidate();
            MyDrawFun();
        }

        private void MyDrawFun()
        {
            Graphics go = Graphics.FromHwnd(this.Handle);
            Bitmap bitmap = new Bitmap(this.ClientSize.Width, this.ClientSize.Height);
            Graphics g = Graphics.FromImage(bitmap);
            g.Clear(System.Drawing.SystemColors.Control);
            g.DrawRectangle(Pens.Red, rectDrawArea);
            Bitmap logo = Properties.Resources.baidulogo;
            g.DrawImage(logo, 0, 0);
            go.DrawImage(bitmap, 0, 0, this.ClientSize.Width, this.ClientSize.Height);
            g.Dispose();
            bitmap.Dispose();
        }