mfc 如何把当前窗口的内容保存到图片
使用GDI
在网上找了些方法可以对屏幕进行截图。
但是我需要截图的窗口有被遮挡的时候。所有没有达到预期的效果
HBITMAP FSPictureBox::CopyScreenToBitmap()
{
HDC hScrDC,hMemDC;//屏幕和内存设备描述表
HBITMAP hBitmap,hOldBitmap;//位图句柄
if(IsRectEmpty(rect)) return NULL;
//为屏幕创建设备描述表
//hScrDC=CreateCompatibleDC(NULL);
//hScrDC=::GetDC(this->m_hWnd);
hScrDC=GetWindowDC()->GetSafeHdc();
//为屏幕设备描述表创建兼容的内存设备描述表
hMemDC=CreateCompatibleDC(hScrDC);
//创建一个与屏幕设备描述表兼容的位图
hBitmap=CreateCompatibleBitmap(hScrDC,rect.Width(),rect.Height());
//把新位衅选到内存设备描述表中
hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap);
//把屏幕设备描述表拷贝到内存设备描述表中
BitBlt(hMemDC,-2,-2,rect.Width(),rect.Height(),hScrDC,0,0,SRCCOPY);
//得到屏幕位图句柄
hBitmap=(HBITMAP)SelectObject(hMemDC,hOldBitmap);
DeleteDC(hScrDC);
DeleteDC(hMemDC);
return hBitmap;
}
请问有什么办法只得到窗口的内容,不管是否遮挡。
(我写的是个类,继承于Static)