基于MFC的CImage类读入图像中遇到的问题
完全按照网上搜得做的,只是对一个MFC单文档程序的OnDraw()函数改了一下,加了一个ON_FLIE_OPEN的消息映射函数,为什么总说我调用文件失败啊?求教,纠结啊…...
完全按照网上搜得做的,只是对一个MFC单文档程序的OnDraw()函数改了一下,加了一个ON_FLIE_OPEN 的消息映射函数,为什么总说我调用文件失败啊?求教,纠结啊……
该的两个函数如下:(其他都没动)
void CwriterView::OnDraw(CDC*pDC)
{
CwriterDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
if (!m_Image.IsNull()) //如果已打开图片,则对图片进行处理
{
AfxMessageBox(_T( "hererdrawing"));
m_Image.Draw(pDC->m_hDC, 20, 20);
}
// TODO: 在此处为本机数据添加绘制代码
}
void CwriterView::OnFileOpen()
{
// TODO: 在此添加命令处理程序代码
CString strFilter;
CSimpleArray<GUID> aguidFileTypes;
HRESULT hResult;
hResult = m_Image.GetExporterFilterString(strFilter,aguidFileTypes,_T("All Image Files"));
if (FAILED(hResult))
{
AfxMessageBox(_T("调用函数失败"));
return;
}
CFileDialog dlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST,strFilter);
if (IDOK != dlg.DoModal())
{
return;
}
m_Image.Destroy(); //按打开按钮弹出一个打开文件的对话框
hResult = m_Image.Load(dlg.GetFileName()); //利用打开文件对话框返回的文件路径装载图像
if (FAILED(hResult))
{
AfxMessageBox(_T("调用图片失败"));
return;
}
//以下是文档标题栏文字
CString str;
str.LoadString(AFX_IDS_APP_TITLE);
AfxGetMainWnd()->SetWindowText(str+'-'+dlg.GetFileName());
OnInitialUpdate();
Invalidate();
} 展开
该的两个函数如下:(其他都没动)
void CwriterView::OnDraw(CDC*pDC)
{
CwriterDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
if (!m_Image.IsNull()) //如果已打开图片,则对图片进行处理
{
AfxMessageBox(_T( "hererdrawing"));
m_Image.Draw(pDC->m_hDC, 20, 20);
}
// TODO: 在此处为本机数据添加绘制代码
}
void CwriterView::OnFileOpen()
{
// TODO: 在此添加命令处理程序代码
CString strFilter;
CSimpleArray<GUID> aguidFileTypes;
HRESULT hResult;
hResult = m_Image.GetExporterFilterString(strFilter,aguidFileTypes,_T("All Image Files"));
if (FAILED(hResult))
{
AfxMessageBox(_T("调用函数失败"));
return;
}
CFileDialog dlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST,strFilter);
if (IDOK != dlg.DoModal())
{
return;
}
m_Image.Destroy(); //按打开按钮弹出一个打开文件的对话框
hResult = m_Image.Load(dlg.GetFileName()); //利用打开文件对话框返回的文件路径装载图像
if (FAILED(hResult))
{
AfxMessageBox(_T("调用图片失败"));
return;
}
//以下是文档标题栏文字
CString str;
str.LoadString(AFX_IDS_APP_TITLE);
AfxGetMainWnd()->SetWindowText(str+'-'+dlg.GetFileName());
OnInitialUpdate();
Invalidate();
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询