Falta un Refresh, que sino no repinta.
#include <wx/wx.h>
#include <wx/image.h>
#include <iostream>
#include "wxPictureWindow.hpp"
#include "MainWindow.hpp"
DEFINE_EVENT_TYPE(EVT_NEXTPICTURE)
BEGIN_EVENT_TABLE (MainWindow, wxFrame)
EVT_COMMAND (wxID_ANY, EVT_NEXTPICTURE, MainWindow::OnNextPicture)
END_EVENT_TABLE ()
MainWindow::MainWindow(const std::vector<wxString> &imgs, const wxSize size)
:wxFrame(0, wxID_ANY, _("wxDjvuMaker"), wxDefaultPosition, size),
_imgs(imgs),
_counter(0)
{
wxBoxSizer *s = new wxBoxSizer(wxVERTICAL);
CropArea area;
_picture = new wxPictureWindow(imgs[0], area, this);
s->Add(_picture);
}
void MainWindow::OnNextPicture(wxCommandEvent &e)
{
++_counter;
if (_counter >= _imgs.size())
{
Close();
return;
}
_picture->SetImg(_imgs[_counter]);
}