怎么把指定dc的指定区域保存成HBITMAP,以及怎么把HBITMAP保存成位图

这段代码展示了如何从设备上下文(DC)中复制指定区域到HBITMAP,然后将这个HBITMAP保存为位图文件。函数CopyDCToBitmap接受一个DC和一个矩形区域,返回复制的位图句柄。SaveBmp函数接收这个位图句柄和文件名,将位图保存到文件中。
摘要由CSDN通过智能技术生成

HBITMAP CopyDCToBitmap(HDC hScrDC, LPRECT lpRect)
{

if(hScrDC==NULL || lpRect==NULL || IsRectEmpty(lpRect))

  {

   AfxMessageBox("参数错误");

return NULL;

}

 HDC        hMemDC;     
 // 屏幕和内存设备描述表
 HBITMAP    hBitmap,hOldBitmap;  
 // 位图句柄
 int       nX, nY, nX2, nY2;     
 // 选定区域坐标
 int       nWidth, nHeight;     
 // 位图宽度和高度

 // 确保选定区域不为空矩形
 if (IsRectEmpty(lpRect))
  return NULL;
 
 // 获得选定区域坐标
 nX = lpRect->left;
 nY = lpRect->top;
 nX2 = lpRect->right;
 nY2 = lpRect->bottom;

 nWidth = nX2 - nX;
 nHeight = nY2 - nY;
 //为指定设备描述表创建兼容的内存设备描述表
 hMemDC = CreateCompatibleDC(hScrDC);
 // 创建一个与指定设备描述表兼容的位图
 hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);
 // 把新位图选到内存设备描述表中
 hOldBitmap = (HBITMAP)SelectObject(h

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值