抓取屏幕并压缩生成HBITMAP
1 HBITMAP GetScreenBmp() 2 { 3 HWND hwnd = ::GetDesktopWindow(); 4 HDC hsrc = ::GetDC(hwnd); 5 HDC hmemdc = ::CreateCompatibleDC(hsrc); 6 RECT rc; ::GetWindowRect(hwnd,&rc); 7 SIZE sz;sz.cx=rc.right-rc.left;sz.cy=rc.bottom-rc.top; 8 HBITMAP hbmp = ::CreateCompatibleBitmap(hsrc,sz.cx,sz.cy); 9 HGDIOBJ holdbmp = ::SelectObject(hmemdc,hbmp); 10 ::BitBlt(hmemdc,0,0,sz.cx,sz.cy,hsrc,rc.left,rc.top,SRCCOPY); 11 ::SelectObject(hmemdc,holdbmp); 12 ::DeleteObject(hmemdc); 13 ::ReleaseDC(hwnd,hsrc); 14 return hbmp; 15 }