利用vc抓取屏幕图像

HBITMAP CBitmapDlg::GetScreen()
{
 HWND hwnd=::GetDesktopWindow();
 HDC hsrc=::GetDC(hwnd);
 HDC hmemdc=::CreateCompatibleDC(hsrc);
 RECT rc;
 ::GetWindowRect(hwnd,&rc);
 SIZE sz;
 sz.cx=rc.right-rc.left;
 sz.cy=rc.bottom-rc.top;
 HBITMAP hbmp=::CreateCompatibleBitmap(hsrc,sz.cx,sz.cy);
 HGDIOBJ holdbmp=::SelectObject(hmemdc,hbmp);
 ::BitBlt(hmemdc,0,0,sz.cx,sz.cy,hsrc,rc.left,rc.top,SRCCOPY);
 ::SelectObject(hmemdc,holdbmp);
 ::DeleteObject(hmemdc);
    ::ReleaseDC(hwnd,hsrc);
 return hbmp;
}

你可能感兴趣的:(VC)