我是在wince下画一般的图形,矩形,椭圆,图片等等。重绘的时候,我先把图形画到一张图片上,再把图片画到画布上,闪烁不是很严重了,可是每次部署的时候屏幕都会先黑一下,而且每次鼠标点两次才有效,这是怎么回事?请各位高手指点一下。代码如下:  Graphics g = this.CreateGraphics();
            if (All)
            { //把静态图画到背景图片上
                Graphics backG;
                backG = Graphics.FromImage(offScreenBackBmp);
                backG.Clear(this.BackColor);
                s.DrawUnselected(backG, this.dx, this.dy);
                backG.Dispose();
            }
            //双缓冲
            Graphics offScreenDC;
            offScreenDC = Graphics.FromImage(offScreenBmp);
            offScreenDC.Clear(this.BackColor);
            offScreenDC.DrawImage(this.offScreenBackBmp, 0, 0);//把带有静态图的背景图片画到缓冲区
            s.DrawSelected(offScreenDC, this.dx, this.dy);//把动态图画到缓冲区           
            if (this._mousedown && this.Status == "画图")//鼠标被按下并且在绘图状态
            {
                System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Red, 1.5f);
                myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
                if (this.Option == "LI")
                {
                   offScreenDC.DrawLine(myPen, X1,Y1,X2,Y2);
                }
                else if (this.Option != "Curve")
                {
                   offScreenDC.DrawRectangle(myPen,  X1, Y1, X2-X1, Y2-Y1);
                }
                myPen.Dispose();
            }
            if (this._mousedown && this.Status == "选择")
            {
                System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Green, 1.5f);
                myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
                offScreenDC.DrawRectangle(myPen, X1, Y1, X2-X1, Y2-Y1);
                myPen.Dispose();
            }
            g.DrawImage(offScreenBmp, 0, 0);//把缓冲区画到画布上
            offScreenDC.Dispose();
            g.Dispose();            

解决方案 »

  1.   

    那个画两次的问题我已经解决了,确实是别的地方定义错误。只是还是在部署的的时候屏幕是黑的,猜测可能与用的双缓冲有关,因为我用的是Offscreenmap= new Bitmap(this.Width,this.Height);不知有没有人可以解答一下?
      

  2.   

    我的问题解决了,是Offscreenmap= new Bitmap(this.Width,this.Height)的问题,如果用一张图片加载的话就不会出问题