齐市到北京:怎样使用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++数字图像处理,和模式识别--邮电出版社的那两本只能参考它的算法了)