虽然书上都有,但权当做一个学习笔记.以防以后忘记了.位图资源的使用,需要经过以下步骤:
1.创建位图资源.(硬盘上)
2.把位图资源载入位图对象.
CBitmap m_Bitmap;
Bitmap.LoadBitmap(*****);(在内存上)
3.获得位图信息.(为什么要获得位图信息,是由于位图是与硬件有关的资源).
BITMAP BM;
m_Bitmap.GetBitmap(&BM);//BM 主要为BitBlt服务
4.把位图选入内存设备环境.
CDC MemDC;
MemDC.CreateCompatibleDC(NULL);
MemDC.SelectObject(&m_Bitmap);
5.显示位图(在显示器上显示)
BOOL CDC::BitBlt(int x, int y, int nWidth, int nHeight, CDC *PscrDc, int xSrc, int ySrc,DWORD dwRop);
完整事例
(1) 制作位图 qiche,然后把它保存在工程的res文件夹中.
(2)在Resource.h文件中添加如下标识符
#define IDB_MY_BITMAP 130
(3) 打开工程的资源描述文件.
IDB_MY_BITMAP BITMAP DISCARDABLE "res//qiche.bmp"
(4)在文挡类声明中,声明如下对象和数据成员
class CMFCexp8_4Doc: public CDocument
{
...
public:
CBitmap m_Bitmap;
int m_nWidth;
int m_nHeight;
....
};
(5)在文挡类的构造函数中装载位图和获的尺寸
CMFCexp8_4Doc::CMFCexp8_4Doc()
{
BITMAP BM;
m_Bitmap.LoadBitmap(IDB_MY_BITMAP);
m_Bitmap.GetBitmap(&BM);
m_nWidth=BM.bmWidth;
m_nHeight=BM.bmHeight;
}
(6)在视图类的OnDraw函数中,显示位图
void CMFCexp8_4Veiw::OnDraw(CDC* pDC)
{
CMFCexp8_4Doc *pDoc=GetDocument();
ASSERT_VALID(pDoc);
CDC MemDC;
MemDC.CreateCompatibleDC(NULL);
MemDC.SelectObject(pDoc->m_nBitmap);
pDC->BitBlt(0,0,pDoc->m_nWidth, pDoc->nHeight,
&MemDC,0,0,SRCCOPY);
}