首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

vector有关问题。 捆扰小弟我许久的有关问题,多文档保存所有图片句柄的有关问题。 比较急

2012-01-23 
vector问题。捆扰我许久的问题,多文档保存所有图片句柄的问题。比较急,在线等。在下面这个函数中我想用Vector

vector问题。 捆扰我许久的问题,多文档保存所有图片句柄的问题。 比较急,在线等。
在下面这个函数中我想用Vector来保存我多文档保存打开所有图片的句柄,但是这里只能保存一个句柄,现在我想把所有打开的图片句柄都保存,请问在这个函数中怎么修改呢???

BOOL   CDIBDisplayDoc::OnOpenDocument(LPCTSTR   lpszPathName)  
{
CFile   file;
CFileException   fe;

if   (!file.Open(lpszPathName,   CFile::modeRead   |   CFile::shareDenyWrite,   &fe))
{
ReportSaveLoadException(lpszPathName,   &fe,FALSE,  
AFX_IDP_FAILED_TO_OPEN_DOC);

return   FALSE;
}

DeleteContents();

BeginWaitCursor();

if(m_pDibImage   !=   NULL)
{
delete   m_pDibImage;
m_pDibImage   =   NULL;
}
m_pDibImage   =   new   CDibImage;

TRY
{
m_hDIB   =   m_pDibImage-> ReadDIBFile(file);
ImgHandle.push_back(m_hDIB);//保存图片句柄
}
CATCH   (CFileException,   eLoad)
{
file.Abort();
EndWaitCursor();

ReportSaveLoadException(lpszPathName,   eLoad,FALSE,  
AFX_IDP_FAILED_TO_OPEN_DOC);

m_hDIB   =   NULL;

if(m_pDibImage   !=   NULL)
{
delete   m_pDibImage;
m_pDibImage   =   NULL;
}

return   FALSE;
}
END_CATCH

InitDIBData();
EndWaitCursor();

//   判断读取文件是否成功
if   (m_hDIB   ==   NULL)
{
CString   strMsg;
strMsg   =   "读取图像时出错!可能是不支持该类型的图像文件! ";
MessageBox(NULL,   strMsg,   "系统提示 ",   MB_ICONINFORMATION   |   MB_OK);

if(m_pDibImage   !=   NULL)
{
delete   m_pDibImage;
m_pDibImage   =   NULL;
}

return   FALSE;
}

SetPathName(lpszPathName);//   设置文件名称
SetModifiedFlag(FALSE);//   初始化胀标记为FALSE

return   TRUE;
}


[解决办法]
是不是你每次ImgHandle。push_back前都在某个函数里面把他 clear了啊,那就只有一个了
[解决办法]
我给你回信了,看看你的信箱

热点排行