分析GIF文件都没问题,到 向图像列表追加位图 这一步出问题了。
代码如下: for (int i =0;i<this->frames;i++)
{
//取出地i幅图片
multi->SelectActiveFrame(&pageGuid,i);
//保存为临时图片
multi->Save(L"tmp.bmp",&encoderClsid);
//构造图像列表控件的图像
Bitmap bmp(L"tmp.bmp");
HBITMAP* tmpHBITMAP = new(HBITMAP);
bmp.GetHBITMAP(Color::Black,tmpHBITMAP);
CBitmap* tmpbmp = NULL;
CBitmap* ImageListBmp = tmpbmp->FromHandle(*tmpHBITMAP);
//如果ImageListBmp创建失败
if (ImageListBmp=NULL)
{
AfxMessageBox("提取位图出错");
delete tmpHBITMAP;
return 0;
}
if (m_ImageListl.Add(ImageListBmp,RGB(0,0,0))==-1)
{
AfxMessageBox("列表控件追加图像出错!");
delete tmpHBITMAP;
return 0;
}
delete tmpHBITMAP;
}
运行的时候只能看到把gif第一帧保存为bmp图片了。然后报错AfxMessageBox("列表控件追加图像出错!");
向图像列表控件追加图像不成功。