本文主要是介绍MFC中使用CBitmap类进行绘图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
大家看名字就可以知道,这个类是用来绘制位图的,即以“.bmp”为后缀的图片。一般游戏之中,需要使用的图片比较多,都会将图片先存为文件,然后从文件中读取,而从文件中读取图片的步骤有以下几步:
1.建立一个与窗口DC兼容的内存DC
我们加载的图片是需要先放在一个内存中的DC里,然后把需要显示的图片从内存DC中绘到窗口DC中即可,我们可以认为内存DC就是一个个备胎,每个DC都是一个屌丝男士,窗口DC就是女神啦,女神需要谁去帮忙做事的时候,那个屌丝男士就和女神在一起了,当然是暂时的,呵呵。
我们首先定义一个内存DC对象;
CDC m_bgcDC;
然后就开始创建一个DC了;
m_bgcDC.CreateCompatibleDC(NULL);
看名字我们就可以知道它的意思了,创建一个兼容的DC。它的参数是CDC*类型的,即一个DC的指针,函数会创建和参数DC兼容的DC。如果我们将参数填为NULL,函数会自动创建和当前程序DC兼容的内存DC,所以我们可以直接设置为NULL。
2.加载资源中的位图
首先将位图添加进资源中,方法是右键工程名->添加->资源,选择Bitmap,点击导入,然后找到你的位图即可。位图添加进来后会有一个ID,大家在资源视图下的Bitmap那一栏下可以看到,位图的ID可以修改,默认是第一章是IDB_BITMAP1,事实上它是一个整型数字。大家可以将其编号为连续的数字,方便在循环中加载位图,和使用它们来显示动画效果。
接下来,就是代码部分了,我们先定义一个位图对象;
CBitmap m_bgBitmap;
然后就可以从资源中加载了
m_bgBitmap.LoadBitmap(IDB_BITMAP1);
3.选用位图对象
加载完毕后,我们需要做的就是将这张图和这个DC关联起来,可以说是将这个图放到内存DC中去,这个就是设置备胎的属性了。
m_bgcDC.SelectObject(&m_bgBitmap);
参数为要选择的位图对象指针。
4.将内存DC的内容粘贴到窗口DC中,绘制出来
由于我们的窗口DC使用的是指针,因此使用方式为
cDC->BitBlt(0,0,m_client.Width(),m_client.Height(),&m_bgcDC,0,0,SRCCOPY);
这篇关于MFC中使用CBitmap类进行绘图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!