从wxWidgets中的资源文件加载动画GIF

时间:2011-03-27 22:47:48

标签: image wxwidgets gif

我正在尝试将动画GIF图像嵌入到wxWidgets C ++程序中。我可以从文件加载图像并显示它:

wxAnimationCtrl *an = new wxAnimationCtrl(this, wxID_ANY, wxAnimation(wxT("image.gif"), wxANIMATION_TYPE_ANY), wxPoint(150,0));
an->Play();

但我宁愿在我的resource.rc文件中使用GIF图像,以便将其编译成可执行文件。我该怎么做?

2 个答案:

答案 0 :(得分:4)

您可以尝试使用wxMSWResourceswxLoadUserResource函数,将GIF资源加载到内存,然后获取wxMemoryInputStream,然后使用wxAnimation::Load()并将该输入流传递给该函数

答案 1 :(得分:0)

m_ani = new wxAnimationCtrl();
const void* data = NULL;
size_t outLen = 0;

// load the icon directory resource
if ( !wxLoadUserResource(&data, &outLen, "ID_WAIT", RT_RCDATA) )
{
    wxLogError(_("Failed to load icons from resource"));
}
else
{
    wxMemoryInputStream stream(data, outLen);
    if (m_ani->Load(stream))  m_ani->Play();
}