GetBitmapBits 以及 SetBitmapBits的用法

本文介绍了一种使用C++实现的屏幕捕获方法,并详细展示了如何将捕获到的屏幕内容转换为位图数据。通过具体代码,读者可以了解到获取屏幕像素信息的过程、创建兼容位图的方法以及如何利用BitBlt函数进行位图绘制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HBITMAP hCaptureBitmap = CopyScreenToBitmap(0, 1024,0, 768);
CBitmap* pBmp = CBitmap::FromHandle(hCaptureBitmap);
int Count;
BITMAP bm;
pBmp->GetObject(sizeof(bm),&bm);
Count = bm.bmWidthBytes * bm.bmHeight; //得到buf大小
BYTE *b=new BYTE[Count];
pBmp->GetBitmapBits(Count,b);

HDC hdc=::GetDC(m_hWnd);//
HDC mdc=CreateCompatibleDC(hdc);
HBITMAP MyBit=CreateCompatibleBitmap(hdc,1024,768);
SetBitmapBits(MyBit,Count,b);
SelectObject(mdc,MyBit);
BitBlt(hdc,0,0,1024,768,mdc,0,0,SRCCOPY);
::ReleaseDC(m_hWnd,hdc);
DeleteObject((HGDIOBJ)mdc);
delete [Count] b;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值