mfc c++如何利用文件-打开,依次打开多张图片,并使图片不重叠
平台vs2012我写的是添加“打开”菜单响应函数CStringszFilter=_T("位图(*.bmp)|*.bmp|动图(*.gif)|*.gif|图片(*.jpg)...
平台 vs2012
我写的是
添加“打开”菜单响应函数
CString szFilter=_T("位图(*.bmp)|*.bmp|动图(*.gif)|*.gif|图片(*.jpg)|*.jpg|所有文件(*.*)|*.*||");
CFileDialog dlg(TRUE,_T("bmp|gif|jpg"),NULL ,OFN_OVERWRITEPROMPT,szFilter );
if(dlg.DoModal ()==IDOK )
{
m_strPathName=dlg.GetPathName ();
Invalidate ();
}
在ondraw里写
if(!m_strPathName.IsEmpty ())
{
m_image.Load (m_strPathName );
m_image.Draw (pDC->m_hDC,0,0);
}
这样并不能实现图片不能重叠,还有在我打开第二张图片的时候会弹出错误对话框,如下 展开
我写的是
添加“打开”菜单响应函数
CString szFilter=_T("位图(*.bmp)|*.bmp|动图(*.gif)|*.gif|图片(*.jpg)|*.jpg|所有文件(*.*)|*.*||");
CFileDialog dlg(TRUE,_T("bmp|gif|jpg"),NULL ,OFN_OVERWRITEPROMPT,szFilter );
if(dlg.DoModal ()==IDOK )
{
m_strPathName=dlg.GetPathName ();
Invalidate ();
}
在ondraw里写
if(!m_strPathName.IsEmpty ())
{
m_image.Load (m_strPathName );
m_image.Draw (pDC->m_hDC,0,0);
}
这样并不能实现图片不能重叠,还有在我打开第二张图片的时候会弹出错误对话框,如下 展开
1个回答
展开全部
应该是在某一处使用同一个图片句柄加载多张图片导致的
if(!m_strPathName.IsEmpty ())
{
m_image.Load (m_strPathName );
}
从第二张开始,这个判断都可以进来,m_image还没有Detach就再次Load,可能就是崩溃在这里了
if(!m_strPathName.IsEmpty ())
{
m_image.Load (m_strPathName );
}
从第二张开始,这个判断都可以进来,m_image还没有Detach就再次Load,可能就是崩溃在这里了
追问
哦哦,这个问题啊已经解决了,就是路径的问题。可是老师的要求是连续打开多张图片,怎么打开后面的呀?打开第二章以后会自动替换掉第一张,并不嫩同时打开两张
追答
用多个变量记录不就可以打开多张了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询