主  题:如何捕获屏幕图象!
作  者:Brierbird
所属论坛:Visual C++
问题点数:40
回复次数:3
发表时间:2000-4-3 12:03:00
 
小弟最近编一个记录屏幕为AVI的程序,请问各位大虾如何去捕获屏幕。 
回复贴子: 
 回复人:zhongshan99() (2000-4-3 12:17:00)  得20分 
HDC hDC=GetDC(GetDesktopWindow());
HDC hComDC=CreateCompatibleDC(hDC);
HBITMAP hBmp=CreateCompatibleBitmap(hDC,width,height);
HBITMAP hOldBmp=(HBITMAP)SelectObject(hComDC,hBmp);
BitBlt(hComDC,0,0,width,height,hDC,0,0,SRCCOPY);
SelectObject(hComDC,hOldBmp);
DeleteDC(hDC);
DeleteObject(hBmp);
OK.hBmp就是你要的图像.  
 回复人:gamepolice() (2000-4-3 16:07:00)  得20分 
CDC* pDC=new CDC;
pDC->CreateDC("Display",NULL,NULL,NULL);
CDC* pMemDC=new CDC;
pMemDC->CreateCompatibleDC(pDC);
CBitmap * pBmp=new CBitmap;
pBmp->CreateCompatibleBitmap(pDC,PicWidth,PicHeight);
pMemDC->SelectObject(pBmp);
pMemDC->BitBlt(pDC,0,0,width,height,0,0,SRCCOPY);
pDC->DeleteDC();
Now pBmp is what you want!  
 回复人:Brierbird() (2000-4-3 21:52:00)  得0分 
非常感谢两位。谢谢你们的解答。
我只想再问一句,你们这种写法是得到整个屏幕所有的图像吧,即包括各层窗口。
再次感谢。