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;

    }

  其他地方无须变动,这样就实现了背景的切换功能。

  

  关于背景切换就到这里了,下一篇我们再继续说一下雪花显示和雪花形状的切换。

posted @ 2012-07-24 14:54  york.z  阅读(350)  评论(0)    收藏  举报