要使用CImage类 要先在引入atlimage.h头文件在窗口OnPaint()中添加Show_picture();
void CCMFCDlg::OnBnClickedOk()
{
CFileDialog cfd(true,
_T(".jpg"),
NULL,
OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,
_T("图片文件 (*.jpg;*.bmp;*.png;*.gif)|*.jpg;*.bmp;*.png;*.gif|所有文件 (*.*)|*.*||"),
this); //选择图片的对话框
if(cfd.DoModal()!=IDOK) //判断是否获得图片
{
return;
}
m_path = cfd.GetPathName(); //获得图片路径
UpdateData(false); //更新路径公共变量
Show_picture(); //调用显示图片函数
}
//显示图片函数
void CCMFCDlg::Show_picture()
{
if(m_path=="") //判断图片路径是否存在
{
return;
}
CWnd *m_picture = GetDlgItem(IDC_STATIC1);
CImage image; //使用图片类
image.Load(m_path); //装载路径下图片信息到图片类
CRect rect;
m_picture->GetClientRect(&rect); //获得控件的区域对象
CDC* pDC = m_picture->GetWindowDC(); //获得显示控件的DC
image.Draw(pDC->m_hDC, rect); //图片类的图片绘制Draw函数
ReleaseDC(pDC);
}
以下是显示BITMAP图片
HBITMAP bitmap=(HBITMAP)LoadImage(
AfxGetInstanceHandle(),
L"C:\\WINDOWS\\Blue Lace 16.bmp",
IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
ASSERT(bitmap);
CStatic *img = (CStatic*) GetDlgItem(IDC_STATIC1);
img->SetBitmap(bitmap);
img->Invalidate();