且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

根据图像路径,创建CBitmap对象的方法

更新时间:2022-09-16 20:00:53

 因为项目的关系,需要根据图像路径,创建CBitmap对象。起初查资料找到了LoadBitmap这个函数,根据CSDN得

BOOL LoadBitmap ( LPCTSTR lpszResourceName );

Parameters
lpszResourceName:Points to a null-terminated string that contains the name of the bitmap resource.

  以为这里的lpszResourceName参数是文件路径名,但经过尝试,失败了!找了很多资料才发现问题。

lpszRecourceName按字面意思好像是"指向资源的名称字符串",可实际呢?却不是一般理解的磁盘上的资源文件名,而是VC工程内部已导入的资源名,所以把外部文件的名称赋给它当然不成功了.问题怎么解决呢?---用API函数HBITMAP LoadImage("文件名");不过该函数返回的是指向Load图片的句柄,所以需要用到CBitmap的Attach方法: 
////直接从外部文件加载图片

HBITMAP bitmap; 
bitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),strFileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE); 
m_backBitmap.DeleteObject(); 
if(!m_backBitmap.Attach(bitmap)) 

   MessageBox("导入背景图失败!","提示",MB_OK); 
   return; 
}