void CALLBACK TimerProc(HWND hwnd ,UINT uMsg, UINT idEvent,DWORD dwTime)
{
HDC hdc=::GetDC(child_hwnd);
HDC hmainWndDc=::GetDC(g_main_hwnd);
RECT child_rect;
::GetWindowRect(child_hwnd,&child_rect);
rect.left+=2;
::BitBlt(hdc,0,0,child_rect.right-child_rect.left,child_rect.bottom,child_rect.top,hmainWndDc,child_rect.left,child_rect.top,SRCCOPY);
::SetWindowPos(child_hwnd,HWND_TOPMOST,oldRect.left,oldRect.top,NULL,NULL,SWP_NOSIZE);
}
上面定时器间隔为100ms,其中child_hwnd为一个背景画刷为NULL_BRUSH(我处理了WM_ERASEBKGNDLE,直接返回1),我希望该窗口能够透明并移动,能完全溶于主窗口g_main_hwnd的背景,不要告诉我用SetLayeredWindowAttributes函数,我还有其他的功能,所以必须是如上面的方法来处理,关键问题时那个子窗口始终是显示创建时所在区域的背景,而不是随着位置改变而动态改变背景
    求高手解释下原因,感激,新手没分,不甚感激!!