用GDI+绘制一个半透明的窗体,但是这个窗体需要经常更新显示。这样问题就来了,在OnPaint里面做重绘操作的时候,之前用GDI+画上去的半透明图片并没有擦除,导致两个重叠,多次刷新之后,会有N张图片叠在一起。就算是重载OnEraseBkgnd直接返回TRUE也没有用。究竟什么方法可以擦除原来的背景,然后再用GDI+重画新的半透明背景上去呢?求指导·

解决方案 »

  1.   

    OnEraseBkgnd里面不要返回TRUE,采用默认的处理.还有更新的时候InvalidateRect的第2个参数要传TRUE.
      

  2.   

    对消息 WM_ERASEBKGND 加入 Return TRUE;即可
      

  3.   

    试过了,不过本来默认参数就是TRUE了依然不变
      

  4.   

    我发帖的时候已经说了,return TRUE也没有,还是那样,图片没有擦除,然后全部重叠了
      

  5.   

    已经自己搞定,原来是重载了OnCtlColor,把背景弄成了NULL_BRUSH的缘故,导致背景重绘也没有擦除原来的背景。