c++ 截取屏幕图片并保存

本文介绍了如何使用C++编程语言来截取屏幕图像,并将其保存为BMP文件。通过执行特定的代码函数,可以实现便捷的屏幕捕捉功能,代替传统的print screen键操作。

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

屏幕捕捉技术第一步就是抓取屏幕的桌面

虽然print screen键可以,但是在实际中就有点不适用了

下面的代码可以拷贝到一个函数里面,执行就可以生成一个获取屏幕的bmp文件了

 

	//获取桌面窗口的CDC
	CDC *pdeskdc = GetDesktopWindow()->GetDC();  
	CRect re;
	//获取窗口的大小
	GetDesktopWindow()->GetClientRect(&re);
	CBitmap bmp;
	bmp.CreateCompatibleBitmap(pdeskdc , re.Width() , re.Height());
	//创建一个兼容的内存画板
	CDC memorydc;
	memorydc.CreateCompatibleDC(pdeskdc);

	//选中画笔
	CBitmap *pold = memorydc.SelectObject(&bmp);

	//绘制图像
	memorydc.BitBlt(0,0,re.Width() ,re.Height(), pdeskdc , 0 ,0 ,SRCCOPY) ;

	//获取鼠标位置,然后添加鼠标图像
	CPoint po;
	GetCursorPos(&po);
	HICON hinco = (HICON)GetCursor();
	memorydc.DrawIcon(po.x-10 , po.y - 10 , hinco);
	//选中原来的画笔
	memorydc.SelectObject(pold);
	BITMAP bit;
	bmp.GetBitmap(&bit);
//	DWORD size = bit.bmWidth * bit.bmHeight ;

	//定义 图像大小(单位:byte)
	DWORD size = bit.bmWidthBytes * bit.bmHeight ;
	LPSTR lpda
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值