从资源中加载是:
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1)
从文件中加载是,注意加载的是位图即bmp文件。
CBitmap bitmap;
bitmap.m_hObject=(HBITMAP)::LoadImage(NULL,"test.bmp",IMAGE_BITMAP,500,400,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
这里需要注意的是从文件加载位图,并不是通过调用CBitmap的成员函数完成。
而是使用SDK函数LoadImage,通过将其返回值赋值给CBitmap的成员变量m_hObject而完成对CBitmap的对象的赋值过程。
此处的强制类型可以不使用,使用是强调的意思。
可以把图像文件中的图像内容加载到CBitmap类中。支持格式:BMP、JPG、GIF和PNG。
CImage imgTemp;
imgTemp.Load(strFilePath);
if ( pBitmap->m_hObject ) pBitmap->Detach();
pBitmap->Attach(imgTemp.Detach());
但是在vc6中没有CImage这个类,在NET2005+平台中的c++有。使用这个类首先要在stdafx.h中添加 #include <atlimage.h>。
如果用stretchBlt,当目的区域比源区域小的时候,看起来会感觉明显的失真。要比过大的失真程度明显