MFC导入位图的方法

可以使用两种方法导入位图文件,一种是从项目资源中导入,另一种是从磁盘中导入。

1 从项目资源中导入位图

使用该方法导入位图文件时,必须先将位图文件导入到项目资源中。

1.1 位图资源的导入

导入位图资源的方法与导入图标资源的方法类似,见《MFC导入图标文件的方法》。

1.2 通过::LoadBitmap()函数获取位图句柄

可以通过Windows API函数LoadImage()来获位图句柄。该函数的格式为

HBITMAP LoadBitmap(HINSTANCE hInstance, LPCTSTR lpBitmapName);

其中,函数hInstance表示包含该图像资源的模块的句柄;lpBitmapName是位图资源的名称。LoadImage()的返回值即为位图资源的句柄。

HBITMAP hBitmap1 = ::LoadBitmap(
AfxGetInstanceHandle()
, MAKEINTRESOURCE(IDB_BITMAP1)
);
其中,AfxGetInstanceHandle() MFC 的全局函数,该函数的作用是返回标识当前应用程序实例的句柄,即 HINSTANCE MAKEINTRESOURCE() 宏的作用是将一个整型资源 ID 转换为 LPTSTR 数据类型的 ID IDB_BITMAP1 是在“1.1 位图资源的导入”中导入的位图文件 ID

1.3 通过LoadImage()函数获取位句柄

MFC导入图标文件的方法》中介绍了LoadImage()函数的使用方法。在通过该函数导入位图时,只需将LoadImage()函数的第三个参数设置为IMAGE_BITMAP即可。

HBITMAP hBitmap2 = (HBITMAP)::LoadImage(
AfxGetInstanceHandle()
, MAKEINTRESOURCE(IDB_BITMAP1)
, IMAGE_BITMAP
, 0
, 0
, LR_DEFAULTCOLOR
);

2 从磁盘中导入位图文件

MFC导入图标文件的方法》中介绍了通过LoadImage()函数从磁盘中导入图标文件的方法,可以使用相同的方法从磁盘中导入位图,只需将LoadImage()函数的第三个参数改为IMAGE_BITMAP即可。

HBITMAP hBitmap3 = (HBITMAP)::LoadImage(
NULL
, _T("C:\\bing.bmp")
, IMAGE_BITMAP
, 0
, 0
, LR_LOADFROMFILE
);


 

你可能感兴趣的:(MFC编程)