窗体上的背景是动态绘制的(截屏作为背景),移动该窗体是感觉明显的闪烁,网上查了不少资料,尝试了下面2种办法:
1.双缓冲(DoubleBuffered、BufferedGraphicsContext)
2.用画布做过渡
但均无效果,不知道是否还有其他更好的方法。

解决方案 »

  1.   

    1:更高级的使用DirectX绘制,效果更好。
    2:检查你的代码的绘制效率,比如:改善代码、减少绘制的细节、只绘制需要被绘制的区域、预先绘制一部分固定背景的位图,减少绘制的时间等。
      

  2.   

    这样子窗体一定会闪的,就好的办法就是透明背景:
    http://download.csdn.net/source/698904
      

  3.   

    顶2楼的这种应用应该使用DirectX或者OpenGL
      

  4.   

     用API可以设置窗体透明的,兄弟,你google一下
      

  5.   

    To 25楼
    使用的API,会使得窗体和其上的控件皆透明。To 26楼
    >>动作的时候让绘制暂停。 等没事了在恢复
    fengyecsdn,我通过观察一下,拖动窗体时,窗体的OnPaint事件并没触发。
      

  6.   

    To 28楼拖动窗体时是不触发窗体的OnPaint事件的,只有窗体被 遮盖后才重绘
      

  7.   

    To 26楼 
    >>动作的时候让绘制暂停。 等没事了在恢复 
    fengyecsdn,我通过观察一下,拖动窗体时,窗体的OnPaint事件并没触发。老大  DX绘制和 窗体的 ONPAINT不是一个概念。
    DX是直接操作显存显示区域的。
      

  8.   

    To 31楼
    是我误会了。没用过DirectX或者OpenGL。
    查了一下DirectX开发,好像用VC++居多,楼上能否推荐一些用C#开发的资料。