我已经使用::GetDC(NULL),得到了桌面的HDC,也可以实现绘图操作,但是在刷新过程效果不是很好,我使用::RedrawWindow(0, &rect, NULL, RDW_INVALIDATE | RDW_ALLCHILDREN)进行刷新,窗口会有点闪,不知有什么好的刷新方法吗?我想实现的内容是在屏幕上绘制一个随光标移动的圆,这样对刷新的要求比较高,千万不要闪呀!请教了,谢谢~~~

解决方案 »

  1.   

    BOOL InvalidateRect(
      HWND hWnd,           // handle to window
      CONST RECT* lpRect,  // rectangle coordinates
      BOOL bErase          // erase state
    );
      

  2.   

    应该不用整个桌面都更新把,要往桌面那块bitblt,先把桌面原来的dc内存保存了,然后新位置bitblt了后,把原位置恢复了
      

  3.   

         selectObject(DC,Cpen);
         SelectObject(DC,GetStockObject(NULL_BRUSH));
         SetRop2(DC,R2_XORPEN);
         先刷掉前面的圆,再在新的位置画一个圆
      

  4.   

    呵呵,已经解决了,谢谢了,使用SetROP2(hdc,R2_XORPEN)函数,进行两次异或就可进行清除了。