使用兼容位图模式下显示位图

本文详细介绍了在MFC中使用位图模式显示位图的步骤,并对比了在OnDraw()和WM_ERASEBKGND消息响应函数中的绘图差异。重点讲解了BitBlt()和StretchBlt()函数的应用,以及如何优化位图显示效果。
摘要由CSDN通过智能技术生成

MFC使用位图模式下显示位图

一,使用该模式显示位图的步骤如下:
1.导入位图.
2.创建兼容DC.
3.将位图选入兼容DC中
4.将兼容位图贴到当前DC中。
具体看如下步骤,改代码是在OnDraw()函数中实现:

CBitmap bitmap;
bitmap.LoadBitmap(IDB_BMP_LOVE);
BITMAP bm;
bitmap.GetBitmap(&bm);
CDC MemDc;
MemDc.CreateCompatibleDC(pDC);
MemDc.SelectObject(&bitmap);
CRect rect;
GetClientRect(&rect);
// BitBlt()函数将图片1:1复制显示出来,不能对图片进行压缩和拉
//伸.使用Stretch()函数可以对图片进行压缩和拉伸。
//pDC->BitBlt(0,0, rect.Width(), rect.Height(),&MemDc,0,0,SRCCOPY);
pDC->StretchBlt(0,0,rect.Width(), rect.Height(), &MemDc,
		0, 0, bm.bmWidth,bm.bmHeight, SRCCOPY);

二,查看VC++详解这本书的时候,作者说可以也可以在WM_ERASEBKGND消息响应函数中
OnEraseBkgnd(CDC* pDC)函数中绘图。
但是我在使用BitBlt()函数绘图时,效果不好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值