关于在窗口放置位图

这是对于MFC笔记的整理

 

在窗口上放置位图的步逐:   

1.创建位图:

CBitmap bitmap;//创建视图对象

bitmap.LoadBitmap(IDB_BITMAP)//导入视图

2.创建兼容DC:  

CDC dcCompatible;//创建设备对象

dcCompatible.CreateCompatibleDC(pDC);//创建兼容DC

ps: DC刚创建的时候是一个像素大小的DC

3.将位图选到兼容DC:

dcCompatible.SelectObject(&bitmap);

4.将兼容DC的位图,贴到当前DC中

pDC->BitBlt(rect.left,rect.top,rect.Width(),rect.Heigth(),&dcCompatible,0,0,SRCCOPY);

       SRCCOPY 是指拷贝的模式  。 是拷贝原位图到目的位图

 

 

 

实际操作:   OnEraseBkgnd 函数是一个窗口擦除时调用的


BOOL CLESSON10View::OnEraseBkgnd(CDC* pDC)//这个消息是当窗口擦擦除时发生编辑。。。
{
// TODO:  在此添加消息处理程序代码和/或调用默认值



CBitmap bitmap;//1.创建视图对象
bitmap.LoadBitmap(IDB_BITMAP2);//导入一张视图,(这是一张桌面视图)


//2.创建兼容DC
CDC dcCompatible;//创建设备对象
dcCompatible.CreateCompatibleDC(pDC);//创建兼容DC
dcCompatible.SelectObject(&bitmap);//3.将位图选到兼容DC
//获取目的DC的矩形窗口
CRect rect;
GetClientRect(&rect);
pDC->BitBlt(10, 10, rect.Width(), rect.Height(), &dcCompatible, 0, 0, SRCCOPY);
//SRCCOPY 是指拷贝的模式  。 是拷贝原位图到目的位图
return true;
//return CView::OnEraseBkgnd(pDC);

}

 

 

有图有真相

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值