齐市到北京:怎样使用MFC打开一幅图片

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 21:45:27

初学MFC还真头疼,结构很复杂,最初怎么打开一幅图片都没思路,以下是一般的方法。

方法一:建立一个单视图文档
在单视图文档中:在C——view中的ondraw中加入如下代码:
CBitmap bitmap;
CDC dcMemory;
bitmap.LoadBitmap(IDB_BITMAP1);
dcMemory.CreateCompatibleDC(pDC);
dcMemory.SelectObject(&bitmap);
pDC->BitBlt(0,0,1200,1200,&dcMemory,0,0,SRCCOPY);
然后加入一个位图资源。


方法二:

(一)
   1、 新建一个基于对话框的应用程序
   2、在对话框类中添加两变量: CBitmap m_bmp;     bool m_bFlag;
3、在OnInitDialog中或onpaint中添加:
   m_bmp.LoadBitmap(IDB_BITMAP1);//IDB_BITMAP1为位图资源的ID
   4、在OnPaint中添加:
   CDC *pDC= GetDC();
       if(m_bFlag)
    {
      CDC memDC;
      memDC.CreateCompatibleDC(pDC);
      CBitmap *old= memDC.SelectObject(&m_bmp);
      pDC->BitBlt(0,0,40,40,&memDC,0,0,SRCCOPY);
      memDC.SelectObject(old);
}
      pDC->DeleteDC();

5、在按键的消息响应中,添加:
   void CMy11Dlg::OnButton1()    
{
       m_bFlag =!m_bFlag;
       Invalidate();
}

或者对于方法二,直接将如下代码加入按键消息响应中!
CBitmap m_bmp;    
m_bmp.LoadBitmap(IDB_BITMAP1);
CDC *pDC= GetDC();
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap *old= memDC.SelectObject(&m_bmp);
pDC->BitBlt(0,0,40,40,&memDC,0,0,SRCCOPY);
memDC.SelectObject(old);

 

(现在不看MFC了,感觉opencv比较容易上手,借了两本visual c++数字图像处理,和模式识别--邮电出版社的那两本只能参考它的算法了)