现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

位图资源的使用

2012-09-14 23:04 工业·编程 ⁄ 共 1192字 ⁄ 字号 暂无评论

    虽然书上都有,但权当做一个学习笔记.以防以后忘记了.位图资源的使用,需要经过以下步骤:

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);

}

给我留言

留言无头像?