我放弃治疗好久了 2016-05-23 06:45 采纳率: 0%
浏览 2345

c++怎么截屏啊,得到整个屏幕的HBitmap

HBITMAP CopyScreenToBitmap(int &nWidth, int &nHeight){
//屏幕和内存设备描述表
HDC hScrDC, hMemDC;
//位图句柄
HBITMAP hBitmap, hOldBitmap;
//屏幕分辨率
int xScrn, yScrn;
//为屏幕创建设备描述表
//hScrDC = CreateDC(L"DISPLAY", NULL, NULL, NULL);
HWND hw=getHandle(1);
hScrDC= GetDC(hw);
//为屏幕设备描述表创建兼容的内存设备描述表
hMemDC = CreateCompatibleDC(hScrDC);
//获得屏幕分辨率
xScrn = GetDeviceCaps(hScrDC, HORZRES);
yScrn = GetDeviceCaps(hScrDC, VERTRES);

    //存储屏幕的宽度
    nWidth = xScrn;
    nHeight = yScrn;

    //创建一个与屏幕设备描述表兼容的 位图
    hBitmap = CreateCompatibleBitmap(hScrDC, xScrn, yScrn);
    //把新位图选到内存设备描述表中
    hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);
    //把屏幕设备描述表拷贝到内存设备描述表中
    BitBlt(hMemDC, 0, 0, xScrn, yScrn, hScrDC, 0, 0, SRCCOPY);
    //得到屏幕位图句柄
    hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap);
    //清除
    //DeleteDC(hScrDC);
    ReleaseDC(hw,hScrDC);
    DeleteDC(hMemDC);

    //返回位图句柄
    return hBitmap;

}
我想做个c++的屏幕找图程序,我找到这段代码,但是这个获得的好像是桌面的位图啊。

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-05-23 06:49
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿