VC++之屏幕抓取

来源:互联网 发布:富盈网络水军 编辑:程序博客网 时间:2024/06/05 09:03
//获得屏幕分辨率
int screenWidth  = GetSystemMetrics(SM_CXSCREEN);

int screenHeight = GetSystemMetrics(SM_CYSCREEN);


CString str;
str.Format("屏幕宽度:%d;屏幕高度:%d",screenWidth,screenHeight);

MessageBox(str,"信息",MB_OK);


HDC hdc = CreateDC("DISPLAY",NULL,NULL,NULL);
HDC hmemdc = CreateCompatibleDC(hdc);
// 创建一个与屏幕设备描述表兼容的位图
HBITMAP bitmap = CreateCompatibleBitmap(hdc,screenWidth,screenHeight);
// 把新位图选到内存设备描述表中
HBITMAP holdbitmap = (HBITMAP)SelectObject(hmemdc, bitmap);
// 把屏幕设备描述表拷贝到内存设备描述表中
BitBlt(hmemdc, 0, 0, screenWidth,screenHeight,hdc, 0,0, SRCCOPY);
//得到屏幕位图的句柄
bitmap = (HBITMAP)SelectObject(hmemdc, holdbitmap);
//清除 
DeleteDC(hdc);
DeleteDC(hmemdc);