MFC导入位图的方法

来源:互联网 发布:阿里云网站监控平台 编辑:程序博客网 时间:2024/06/08 08:03

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

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的全局函数,该函数的作用是返回标识当前应用程序实例的句柄,即HINSTANCEMAKEINTRESOURCE()宏的作用是将一个整型资源ID转换为LPTSTR数据类型的IDIDB_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);