PrintWindow 截图为什么黑屏呢,vc++,求高手告诉小弟我

PrintWindow 截图为什么黑屏呢,vc++,求高手告诉我啊
vb的代码可以,vc的不可以。
请看VB代码,
picture1是个图片控件,这样一截图,就ok了。
 
Picture1.Cls
  Call PrintWindow(Val(TxtHwnd.Text), Picture1.hdc, 0)  
 Picture1.Refresh

===========================
vc的是这样的

typedef BOOL ( __stdcall *pPrintWindow )(HWND hWnd,HDC hdcBlt,UINT nFlags);
//RECT rect;
HMODULE h;
h = LoadLibrary( L"user32.dll" );
pPrintWindow p;
if( h )
{
p = ( pPrintWindow )::GetProcAddress( h, "PrintWindow" );
}
        
        p(hWnd,*bitcdc,0);



//bitcdc 是个图片控件的CDC   CDC *bitcdc  m_pic.GetDC()

为什么VB这样可以,VC截出来的却是黑屏呢,
vc的可以看到标题栏。十几次可以正确一次。其余的都是黑屏

求高手解答啊。指点迷津

------解决方案--------------------
PrintScreen不会立即返回的吧,可能会卡住消息循环。
建议你创建一个新的线程,在线程函数里PrintScreen。MFC编程最好用AfxBeginThread
另外如果你用VC.NET以及以后的版本是可以直接用PrintScreen这个API而不用LoadLibrary、GetProcAddress什么的。
------解决方案--------------------
你截得是子控件窗口?
------解决方案--------------------
是不是HDC中没有选人合适的位图?或者选人的位图是单色的
------解决方案--------------------
   HDC hDC=CreateCompatibleDC(bitcdc);                //创建内存DC  
   HBITMAP hbitmap=::CreateCompatibleBitmap(bitcdc,width,height); //创建兼容位图  
   SelectObject(hDC,hbitmap);    //把位图选进内存DC    
   p(hWnd,hDC,0);    
------解决方案--------------------
如果 控件 可见 ,不需要 PrintWindow 
------解决方案--------------------
这部分程序初始化,准备一个内存DC存图像。
    CDC memDC;//内存DC
    memDC.CreateCompatibleDC(pDC);
    
    CBitmap memBitmap, *oldmemBitmap;、
    memBitmap.CreateCompatibleBitmap(pDC, width, height);

    oldmemBitmap = memDC.SelectObject(&memBitmap);

这个部分就是截图的:

    CDC *pDC = CDC::FromHandle(::GetDC(hwnd));

    int BitPerPixel = pDC->GetDeviceCaps(BITSPIXEL);
 if(width==0 && height==0)
 {
  width = pDC->GetDeviceCaps(HORZRES);
  height= pDC->GetDeviceCaps(VERTRES);
 }
    memDC.BitBlt(0, 0, Width, Height, pDC, 0, 0, SRCCOPY);
pDC->DeleteObject();


销毁的时候:
memDC.SelectObject(oldmemBitmap);

每次贴图区域OnDraw或OnPaint时,
把MemDC的图Bitblt过去。这样的方法比较规范。
你用的PrintScreen是微软没有公开的函数,使用时可能需要考虑许多别的情况,比如绘制的同步什么的,也许那些窗口还来不及绘制自己就函数就结束了。
------解决方案--------------------
引用:
引用:HDC hDC=CreateCompatibleDC(bitcdc);                //创建内存DC