首页 > C和C# > vc++实现屏幕截取编程

vc++实现屏幕截取编程

2007年6月18日 发表评论 阅读评论

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);

}

分类: C和C# 标签: 1,668 次阅读
原文链接:http://www.wenhq.com/article/view_61.html
欢迎转载,请注明出处:亲亲宝宝
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.