MFC实现飘雪程序 ㊁
背景显示与切换
效果如下:


这里我们来看一下背景的显示和切换是如何实现的。
首先,要显示背景,就要准备好一张背景图片啦。准备好一张BMP的背景图,将之导进来,之后会发现在里面是打面不开图片的,他会说是位图超过256色,不能载入到位图编辑器中。
没关系,我们在外面用PS等工具先行处理好图片就行了,显示出来就要用一点简单的代码来实现了。
如何显示位图呢?我们需要用到以下代码:
View Code
1 //首先要把导入的位图改个名字,改成易记一点的 2 3 //这里改为:IDB_bg1 4 5 CBitmap Bitmap; 6 7 Bitmap.LoadBitmap(IDB_bg1);//装载位图,IDB_bg1即背景位图 8 9 //以下是如何显示位图,记住并学会举一反三即可 10 11 CDC MemDC; 12 13 MemDC.CreateCompatibleDC(pDC); 14 15 CBitmap *oldBitmap = MemDC.SelectObject(&Bitmap); 16 17 BITMAP bm; 18 19 Bitmap.GetBitmap(&bm); 20 21 pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY); //显示出位图 22 23 MemDC.SelectObject(oldBitmap);//恢复笔刷 24 25 MemDC.DeleteDC();//释放 26 27 Bitmap.DeleteObject();//释放
把这些代码写在OnDraw()函数里面,就可以在程序运行时显示出位图背景了,简单吧。
到现在为止,只能显示一张的背景图,而且不能切换成其他背景。接下来,就来看看如何实现切换背景。
1、首先,我们要将要作为切换用的位图在外部处理后导进来。
/*这里,我们先将这些图片进行命名:
*IDB_bg1 ~ IDB_bg
*/
2、然后,要定义一个变量来储存背景的选择情况。
int choose_bg = 1; //这里要先置一个初始值,表示一开始显示哪张背景
3、选择过程
新建一个对话框,在里面布有几个选择的按钮,单击哪个按钮,就选择哪个背景,也就是将变量choose_bg改变一下
比如说,单击Button1,就将choose_bg置为1,单击Button2,就将choose_bg置为2……
(至于不会做对话框和按钮的,请看另一篇教程:)
4、选择开关
选择过程写好了,我们现在要利用一下switch()这个开关语句,来实现不同背景位图的载入。
这前我们载入位图是用这个:
CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_bg1); //载入名为IDB_bg1的位图
现在,为了可以对背景进行切换,我们可以改为:
CBitmap Bitmap;
switch(choose_bg) //选择哪个choose_bg,就对应载入要切换成的背景
{
case 1:Bitmap.LoadBitmap(IDB_bg1); break;
case 2:Bitmap.LoadBitmap(IDB_bg2); break;
case 3:Bitmap.LoadBitmap(IDB_bg3); break;
case 4:Bitmap.LoadBitmap(IDB_bg4); break;
}
其他地方无须变动,这样就实现了背景的切换功能。
关于背景切换就到这里了,下一篇我们再继续说一下雪花显示和雪花形状的切换。


浙公网安备 33010602011771号