Search code examples
c++wxwidgets

Getting wxImage in a panel


I've a problem to get a wxImage into a wxPanel. I want to create a .exe with some pics in the exe, but I want to avoid to give the PNG-Pics with the exe.

So far, I get the PNGs into the exe with this:

wxStaticBitmap *image = new wxStaticBitmap(p_img, wxID_ANY,
    wxBitmap("Bild.png", wxBITMAP_TYPE_PNG),
    wxPoint(0,0),               
    wxSize(width, height);

where p_img ist the panel and Bild.png the picture.

Now, I have followed http://wiki.wxwidgets.org/WxImage And have now a wxImage... But I don't know how I can get the wxImage in the panel.

wxMemoryInputStream istream1(Bild_png, sizeof Bild_png);
wxImage Bild_png(istream1, wxBITMAP_TYPE_PNG);

I hope somebody has a idea.

-Casisto

My System: OS: Win 8.1; wxW 2.9.4; IDE: CodeLite5.1


Solution

  • You can pass wxImage into wxBitmap constructor (wxBitmap Class Reference):

    wxBitmap(const wxImage &img, int depth=wxBITMAP_SCREEN_DEPTH)
    

    And then you can create wxStaticBitmap. So the code would be something like that:

    wxImage Bild_png(istream1, wxBITMAP_TYPE_PNG);
    wxStaticBitmap *staticBitmap = new wxStaticBitmap(p_img, wxID_ANY, wxBitmap(Bild_png));