后台截屏

HBITMAP GetWindowBitmap(HWND hWnd)  
{  
	typedef BOOL ( __stdcall *pPrintWindow )(HWND ,HDC ,UINT );  
    RECT rect;   
	HMODULE h;  
	h = LoadLibrary( "user32.dll" );  
	pPrintWindow p;  
	if( h )  
	{  
		p = ( pPrintWindow )::GetProcAddress( h, "PrintWindow" );  
	}  
	
    ::GetWindowRect(hWnd,&rect);  
	
    HDC hScrDC=::GetDC(hWnd);                            //创建屏幕DC  
    HDC hMemDC=CreateCompatibleDC(hScrDC);                //创建内存DC  
    HBITMAP bitmap=::CreateCompatibleBitmap(hScrDC,rect.right-rect.left,rect.bottom-rect.top); //创建兼容位图  
    HBITMAP OldBitmap=(HBITMAP)::SelectObject(hMemDC,bitmap);    //把位图选进内存DC  
	
    p(hWnd,hMemDC,0);    
	
	HDC d;  
	HWND hw;  
	hw = ::GetDesktopWindow();  
	d = ::GetWindowDC( hw );  
	::BitBlt( d, 0, 0, 200, 200, hMemDC, 0, 0, SRCCOPY );  
	
    ::SelectObject(hMemDC,OldBitmap);   
	
    ::DeleteDC(hMemDC) ;            //删除内存DC  
    ::ReleaseDC(NULL,hScrDC) ;    //释放屏幕DC  
	
    return bitmap;  
} 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值