|

楼主 |
发表于 2020-11-12 15:12:26
|
显示全部楼层
首先建立了MFC多文档项目,在视图类下添加了openfile事件
void CMFCApplication3View::OnFileOpen()
{
// TODO: 在此添加命令处理程序代码
TCHAR szFilter[] = _T("图片文件(*.jpg)|*.jpg|图片文件(*.bmp)|*.bmp|图片文件(*.png)|*.png|所有文件(*.*)|*.*||");
//构造打开文件对话框
CFileDialog fileDlg(TRUE, NULL, NULL, 0, szFilter, this);
//显示打开文件对话框
if (IDOK == fileDlg.DoModal())
{
//点击"打开"按钮,则将文件路径赋值
StrPath0 = fileDlg.GetPathName();
//SetDlgItemText(IDC_EDIT_PATH0, StrPath0);
}
USES_CONVERSION;
string PicPath(W2A(StrPath0));
if (!image.IsNull())
{
image.Destroy();
}
image.Load(fileDlg.GetPathName());
/*GetDocument()->image.Load(fileDlg.GetPathName());*/
Invalidate();
/*OnUpdate(NULL,1,1,1);*/
}
改写了 ondraw 如下
void CMFCApplication3View::OnDraw(CDC* pDC)
{
CMFCApplication3Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
if (!image.IsNull())
{
image.Draw(pDC->GetSafeHdc(), 0, 0);
}
}
最后的问题是,运行点击打开时图片不显示,但再点一次打开就可以显示,或者先点新建,再点打开也可以显示,我需要运行后点打开就可以显示
|
|