+ -
当前位置:首页 → 问答吧 → 窗口部分不可见时截图问题

窗口部分不可见时截图问题

时间:2011-12-07

来源:互联网

程序里对自己的窗口进行截图,如果窗口全部可见时没问题,但是当把窗口部分移出屏幕以外时,那部分截图就是全黑了,怎么样才能截取到完整的的图呢,我用的是BitBlt截的

http://blog.csdn.net/SilenceNet/article/details/4278065
这位兄弟用VB实现的,在MFC里面要怎么实现?谢谢。

作者: wangjiepro   发布时间: 2011-12-07

BitBlt的原dc和目标dc是否是完整窗口的dc(即使看不到\被遮挡)
如果都是从内存dc里获取的信息,应该可以的

作者: lgstudyvc   发布时间: 2011-12-07

引用 1 楼 lgstudyvc 的回复:

BitBlt的原dc和目标dc是否是完整窗口的dc(即使看不到\被遮挡)
如果都是从内存dc里获取的信息,应该可以的


不行啊,我的代码:
C/C++ code

        CRect cliRect;
        pConn->GetClientRect(&cliRect);

        HDC hConnectionDC = ::GetDC(m_hWnd);
        HDC hMemDC = ::CreateCompatibleDC(hConnectionDC);  
        HBITMAP hbm;

        hbm = CreateCompatibleBitmap(hConnectionDC, cliRect.Width(), cliRect.Height());
        HBITMAP oldbm = (HBITMAP) SelectObject(hMemDC, hbm);     
        BitBlt(hMemDC, 0, 0, cliRect.Width(), cliRect.Height(), hConnectionDC, 0, 0, SRCCOPY);

作者: wangjiepro   发布时间: 2011-12-07

C/C++ code

BOOL PrintWindow(
  HWND hwnd,               // Window to copy
  HDC  hdcBlt,             // HDC to print into
  UINT nFlags              // Optional flags
);


作者: shen_wei   发布时间: 2011-12-07