我在MFC单文档程序中利用CWindowDC dcc(GetDesktopWindow())在桌面显示了一张图片,并让他移动!但是移动的时候有严重的残留痕迹~        
请教高手怎样才能消除痕迹呢?
还有就是怎样才能让画在桌面上的图片随着我的窗口的移动而移动?
我是菜鸟

解决方案 »

  1.   

    给桌面窗口发WM_PAINT、WM_ERASEBKGND消息试试
      

  2.   

    刷新桌面 
    ::SHChangeNotify( SHCNE_ASSOCCHANGED , SHCNF_IDLIST | SHCNF_FLUSH, 0, 0); 
    /* HWND hWndProgram = ::FindWindow( _T("Progman"), NULL); 
    HWND hWndDefView = ::FindWindowEx( hWndProgram, NULL, _T("SHELLDLL_DefView"), NULL); 
    HWND hWndListView= ::FindWindowEx( hWndDefView, NULL, _T("SysListView32"), NULL); ::PostMessage( hWndListView, WM_KEYDOWN, VK_F5, 0); 
    ::PostMessage( hWndListView, WM_KEYUP, VK_F5, 0); */
      

  3.   

    麻烦说具体一点,我是菜鸟,刚学MFC不是很懂,有代码最好!
      

  4.   


    ::PostMessage(GetDesktopWindow(),WM_PAINT,NULL,NULL);
    //或者
    ::PostMessage(GetDesktopWindow(),WM_ERASEBKGND,NULL,NULL);