vc++实现屏幕截取编程
void CScreenCaptureDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
//得到鼠标所在处的窗口的区域宽、高
int nWidth=rectCapture.Width();
int nHeight=rectCapture.Height();
HDC hdcScreen, hMemDC;
HBITMAP hBitmap, hOldBitmap;
//建立一个屏幕设备环境句柄
hdcScreen = CreateDC(“DISPLAY”, NULL, NULL, NULL);
hMemDC = CreateCompatibleDC(hdcScreen);
//建立一个与屏幕设备环境句柄兼容、与鼠标所在处的窗口的区域等大的位图
hBitmap = CreateCompatibleBitmap(hdcScreen, nWidth, nHeight);
// 把新位图选到内存设备描述表中
hOldBitmap =(HBITMAP)SelectObject(hMemDC, hBitmap);
// 把屏幕设备描述表拷贝到内存设备描述表中
BitBlt(hMemDC, 0, 0, nWidth, nHeight, hdcScreen,rectCapture.left,rectCapture.top,SRCCOPY);
//取回鼠标所在处的窗口屏幕位图的句柄
hBitmap =(HBITMAP)SelectObject(hMemDC, hOldBitmap);
DeleteDC(hdcScreen);
DeleteDC(hMemDC);
// 返回位图句柄
//打开剪贴板,并将位图拷到剪贴板上
OpenClipboard() ;
EmptyClipboard();
SetClipboardData(CF_BITMAP, hBitmap);
//关闭剪贴板
CloseClipboard();
MessageBox(“屏幕内容已经拷到剪贴板上!”);
//终止鼠标捕获
ReleaseCapture();
//恢复窗口显示模式
ShowWindow(SW_NORMAL);
}
欢迎转载,请注明出处:亲亲宝宝