MFC中当保存位图时,图片为全黑的解决办法

本文详细介绍了在Windows环境下如何通过编程实现屏幕截图的过程。具体步骤包括:获取画布大小,创建兼容位图与设备上下文(DC),将位图选入DC,最后将屏幕DC的图像复制到内存DC中并保存为图片文件。

        需要创建兼容位图,创建兼容DC,然后需要将位图选入DC中,再将屏幕DC的图像拷贝到创建的兼容内存DC中。

    ······
    CRect rect1;
	GetClientRect(&rect1);                  //获取画布大小    
	HBITMAP hbp = CreateCompatibleBitmap(dc, rect1.Width(), rect1.Height());       //创建兼容位图  

	HDC hdc1 = CreateCompatibleDC(dc);      //创建兼容DC    
	(HBITMAP)SelectObject(hdc1, hbp);      //将位图选入DC
	BitBlt(hdc1, 0, 0, rect1.right - rect1.left, rect1.bottom - rect1.top, dc, 0, 0, SRCCOPY);        //将屏幕DC的图像复制到内存DC中  

	CRawImage rawIa;
	rawIa.Load(hbp);
	//rawIa.Rotate(0, 1, 90);
	rawIa.Save(_T("D:\\image\\rawTest.png"), 0);
    ······

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值