VC中加载图片的几中方法

来源:互联网 发布:化验单解读软件 编辑:程序博客网 时间:2024/05/21 06:34

VC中加载图片的几中方法  

2010-02-09 09:04:27|  分类:默认分类|  标签:|字号 订阅

        我用的最多,感觉也是最简单的一种就是以前我在我的空间介绍过的那种,现在都在这里统一说一下,以便大家有一个选择,

       第一种:在你建立的MFC工程的.***app的文件的初始化函数里加上对于环境变量的初始化,以及图片的加载,

BOOL **********Dlg::OnInitDialog()

.........

       CRect rect;
        CDC dc;
        GetClientRect(&rect);
        mdc=new CDC;
        bitmap=new CBitmap;
        bgmap=new CBitmap;
        bemap=new CBitmap;
        mdc->CreateCompatibleDC(&dc);
        bgmap->m_hObject=(HBITMAP)::LoadImage(NULL,"无标题.bmp",
        IMAGE_BITMAP,rect.right,rect.bottom,LR_LOADFROMFILE);
        bitmap->m_hObject=(HBITMAP)::LoadImage(NULL,"标题.bmp",
        IMAGE_BITMAP,rect.right,rect.bottom,LR_LOADFROMFILE);
        bemap->m_hObject=(HBITMAP)::LoadImage(NULL,"标题1.bmp",
        IMAGE_BITMAP,rect.right,rect.bottom,LR_LOADFROMFILE);

}

 

然后在该文件的Onpaint函数里,加上下面的代码:

void CCanvasFrameDlg::OnPaint()
{
       if (IsIconic())
       {
               ..........
        }
 else
 {
            CPaintDC dc(this); // device context for painting
            CRect rect;
            GetClientRect(&rect);
            mdc->SelectObject(bgmap);
            dc.BitBlt(0,0,rect.right,rect.bottom,mdc,0,0,SRCCOPY);
            mdc->SelectObject(bemap);
            dc.BitBlt(0,0,500,600,mdc,0,0,SRCAND);
            mdc->SelectObject(bitmap);
            dc.BitBlt(0,0,500,600,mdc,0,0,SRCPAINT);
           }
}

 

这样就可以把背景加载到了主对话框,成为其背景,但是要为别的对话框加载背景图片,那么就得在其相应的初始化函数里加上前的初始化代码,在其Onpaint函数了加上相应的代码,就可以。

加载gif格式的动画图片

加载动画图片gif格式的图片的一种很好的方法就是用已有现成的类实现自己的功能,我在网上见到了一个很好的类,其加载这种图片文件很容易,现在在这里一起和大家分享一下,将PictureEx.h,PictureEx.cpp两个文件为类文件加载到我们自己的工程里。

现在让我们来看看它的加载过程,

1.加入图片控件:从对话框控件中把Picture Control(图片控件)拖入主对话框中,修改其属性:ID:IDC_GIF,TYPE:Rectangle,其余接受缺省选项。再在ClassWiard中为IDF_GIF加入CSatic控制变量m_GifPic, 注意看一下,******Dlg.h中是否加上了#include "PictureEx.h"(由ClassWiard加入)。然后将CSatic m_GifPic;更改成CPictureEx m_GifPic;

 

2.加载动画文件:先将要加载的动画文件放到 res 资源文件夹下,再将其Import进项目中,由于MFC只支持256BMP文件的图片,因此,我们要新建一个图片类型:"GIF",roaring.gif放进去 ,并将其ID修改成:IDR_GIFROARING。import(导入)gif动画的详细过程:

在resourceview窗口中,单击鼠标右键,在出现的环境菜单中选择“import...”命令,会出现“import resource”选择文件对话框,文件类型选择“所有文件(*.*)”,open as 选项为"auto",再选择动画文件所在目录,选上要载入的动画文件 roaring.gif,再单击 import,由于gif动画类型不是vc默认的文件类型,这时会出现"custom resource type"对话框,键入“"gif"”,再单击ok,然后再修改其id。

 

3.在程序的适当位置添入加载代码: 这里,我们在C*****Dlg::OnInitDialog()函数中加入如下代码:

// TODO: Add extra initialization here
if (m_GifPic.Load(MAKEINTRESOURCE(IDR_GIFROARING),_T("Gif")))
m_GifPic.Draw();

到这就完成了,运行一下,应该看看您的的成果了。