因为项目的关系,需要根据图像路径,创建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;
}