内存中绘图 Memdc

 

CDC MemDC;   //首先定义一个显示设备对象,所有的绘制首先绘制到这块内存中
CBitmap MemBitmap; //定义一个位图对象

//随后建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(NULL);
MemDC.SetStretchBltMode(HALFTONE);

//这时还不能绘图,因为没有地方画
//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小
MemBitmap.CreateCompatibleBitmap(&dc /*是dc这个参数,而不是MemDC*/,rectCanvas.Width(),rectCanvas.Height());

//将位图选入到内存显示设备中
//只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);

//这一句只是为了填充一个背景,
MemDC.FillSolidRect(rectCanvas.left,rectCanvas.top,rectCanvas.Width(),rectCanvas.Height(),GetBackgroundColor());   

//在MemDC上进行操作,绘制你想要绘制的东西
//...


//将MemDC的图拷贝到屏幕(dc)上进行显示
dc.BitBlt(rectCanvas.left,rectCanvas.top,rectCanvas.Width(), rectCanvas.Height(),&MemDC,0,0,SRCCOPY);

//绘图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值