MFC加载图标,位图。LoadImage LoadIcon, LoadBitmap

MFC加载图标和位图,有2种方式,一种是从工程的资源中加载,一种是从文件加载。

先说图标的,图标格式为.ico,也就是我们常说的ICON图片。

我们直观的希望是加载ico使用LoadIcon()函数,加载bitmap图片使用LoadBitmap函数,事实上,的确可以这样。


1、加载图标

LoadIcon函数要加载位图,要使用CWinApp的成员函数LoadIcon才行。当你查看MSDN的时候,会发现,LoadIcon可以是CWinApp的Class member函数,也可以是windows api函数。说实话,windows api函数我不知道怎么使用,呵呵,大家可以自己去验证下能不能加载。这里既然说了是CWinApp函数,我们的MFC程序都有一个全局的变量,theApp。这个变量就是CWinApp类的对象,只需要使用theApp.LoadIcon()就可以了。当然,也可以使用AfxGetApp()获得CWinApp指针,比如AfxGetApp()->LoadIcon();

函数原型:

CWinApp::LoadIcon

HICON LoadIcon( LPCTSTR lpszResourceName ) const;   //这一种是从硬盘上加载ICON,传入的参数是文件路径,比如“F:\\123.ico”;

HICON LoadIcon( UINT nIDResource ) const;                        //这种是从工程资源中加载ICON,传入参数是资源ID,比如IDC_ICON1.

简单举例:

(1)从硬盘加载

HICON hIcon = NULL;

hIcon  = theApp.LoadIcon("F:\\123.ico");

或者

hIcon  = AfxGetApp()->LoadIcon("F:\\123.ico");

(2)从资源加载

HICON hIcon = NULL;

hIcon = AfxGetApp()->LoadIcon(IDC_ICON1);

是不是很简单,这样就完成了图标的加载了。

2、位图的加载。

位图的加载也很简单,我们使用CBItmap的成员函数LoadBitMap();

函数声明:

CBitmap::LoadBitmap

BOOL LoadBitmap( LPCTSTR lpszResourceName );     //从硬盘加载位图

BOOL LoadBitmap( UINT nIDResource );                           //从资源加载位图

举例:

CBitmap bitmap;

bitmap.LoadBitmap("F:\\a.bmp");

或者

bitmap.LoadBitmap(IDB_BITMA1);


3、通用加载图片方式

这种方式,使用LoadImage来加载,这种方式可以去试试。

举例:

HBITMP hBitmap=(HBITMAP)::LoadImage(NULL,pszFileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//

pszFileName

是文件路径。

 

LR_LOADFROMFILE表示从文件中加载。

或者

HICON hIcon = (HICON)::LoadImage(NULL,pszFileName,IMAGE_ICON,0,0,LP_LOADFROMFILE);

本文转载自曾伟微博:http://blog.csdn.net/zengweicdut/article/details/14160427

你可能感兴趣的:(Mfc)