读书人

vector有关问题。 捆扰小弟我许久的有

发布时间: 2012-01-23 21:57:28 作者: rapoo

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了啊,那就只有一个了
[解决办法]
我给你回信了,看看你的信箱

读书人网 >VC/MFC

热点推荐