BOOL PrintWindow(
  HWND hwnd,               // Window to copy
  HDC  hdcBlt,             // HDC to print into
  UINT nFlags              // Optional flags
);
函数MSDN地址:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/gdi/prntspol_6qpj.htm用它可以取得某个窗体的完整内容,被其他程序挡住时也可以取得.
 
不过用起好像有BUG,当调用该函数后,hwnd指定的那个窗体显示不正常了.如何解决哦
试过以下方法:CWnd *pWnd = CWnd::FromHandle(hwnd);
pWnd->Invalidate();
或者:
GetDesktopWindow()->Invalidate();
都无效代码如下:
CDC *pDC = GetDC();CDC memDC;
memDC.CreateCompatibleDC(pDC);CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC, rcWnd.Width(), rcWnd.Height());CBitmap *pOld_bmp = memDC.SelectObject(&bmp);
::PrintWindow(pWnd->GetSafeHwnd(), memDC.GetSafeHdc(), 0/*PW_CLIENTONLY*/);
......