在MFC中怎样刷新桌面窗口,该怎么处理

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

------解决方案--------------------
给桌面窗口发WM_PAINT、WM_ERASEBKGND消息试试
------解决方案--------------------
一开始就把桌面抓来存下来,和你的窗口合成后再覆盖回去。
------解决方案--------------------
刷新桌面 
::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); */

------解决方案--------------------
C/C++ code

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