VC基于对话框导入bmp图片
VC基于对话框导入bmp图片,使用CDib类,要是导入第二张图片,两张图片重叠了,为什么啊,还用了GlobalLock我不知道为什么啊,后续还要处理图片。这是打开图片vo...
VC基于对话框导入bmp图片,使用CDib类,要是导入第二张图片,两张图片重叠了,为什么啊,还用了GlobalLock我不知道为什么啊,后续还要处理图片。
这是打开图片
void CEyesDetectDlg::OnOpenfile()
{
// TODO: Add your control notification handler code here
CFile file;
CFileException fe;
CFileDialog dlg(TRUE, "*.BMP", NULL, NULL,"位图文件(*.BMP)|*.bmp;*.BMP|");
if(IDOK == dlg.DoModal())
{
if (!file.Open(dlg.GetPathName(), CFile::modeRead,&fe))
return;
if(m_pDib != NULL)
{
delete m_pDib;
m_pDib = NULL;
}
m_pDib = new CDib;
TRY
{
m_hDIB = m_pDib->LoadFile(file);
}
CATCH (CFileException, eLoad)
{
file.Abort();
m_hDIB = NULL;
if(m_pDib != NULL)
{
delete m_pDib;
m_pDib = NULL;
}
return;
}
END_CATCH
InitDib();//初始化DIB
// 判断读取文件是否成功
if (m_hDIB == NULL)
{
MessageBox("读取图像时出错!可能是不支持该类型的图像文件!");
if(m_pDib != NULL)
{
delete m_pDib;
m_pDib = NULL;
}
return;
}
}
DrawPicture();
return;
} 展开
这是打开图片
void CEyesDetectDlg::OnOpenfile()
{
// TODO: Add your control notification handler code here
CFile file;
CFileException fe;
CFileDialog dlg(TRUE, "*.BMP", NULL, NULL,"位图文件(*.BMP)|*.bmp;*.BMP|");
if(IDOK == dlg.DoModal())
{
if (!file.Open(dlg.GetPathName(), CFile::modeRead,&fe))
return;
if(m_pDib != NULL)
{
delete m_pDib;
m_pDib = NULL;
}
m_pDib = new CDib;
TRY
{
m_hDIB = m_pDib->LoadFile(file);
}
CATCH (CFileException, eLoad)
{
file.Abort();
m_hDIB = NULL;
if(m_pDib != NULL)
{
delete m_pDib;
m_pDib = NULL;
}
return;
}
END_CATCH
InitDib();//初始化DIB
// 判断读取文件是否成功
if (m_hDIB == NULL)
{
MessageBox("读取图像时出错!可能是不支持该类型的图像文件!");
if(m_pDib != NULL)
{
delete m_pDib;
m_pDib = NULL;
}
return;
}
}
DrawPicture();
return;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询