Bild in wxArtProvider laden ...



  • geht das überhaupt?

    damit ich das bild(symbol) in meine Toolbar laden kann.

    Denn jetzt muss ich das bild irgendwo bei mir ablegen und den Pfad dazu jedesmal neu anpassen. Da wäre es einfacher, alle symbole in den artProvider zu laden und von dort aus aufzurufen.

    oder gibt es da irgendwelche anderen möglichkeiten???

    Danke. 🙂



  • 1. Eigene Klasse von wxArtProvider ableiten
    2. Die Funktion CreateBitmap() überschreiben
    3. Deinen neuen Art-Provider per wxArtProvider::Push() bekanntmachen



  • So hab ich es bisher umgesetzt, wobei beim start kein fehler kommt, er sich nur aufhängt und schließlich das Programm unsanft schliest.

    //in der Main.h
    #include "artproviderApp.h"
    
    #include "Beenden.xpm"
    #include "Konfig.xpm"
    #include "Play.xpm"
    #include "Stop.xpm"
    #include "Tools.xpm"
    
    // The art provider class
    class MyArtProvider : public wxArtProvider
    {
        protected:
            virtual wxBitmap CreateBitmap(const wxArtID& id,
                                          const wxArtClient& client,
                                          const wxSize& size);
    };
    
    wxBitmap MyArtProvider::CreateBitmap(const wxArtID& id,
                                        const wxArtClient& client,
                                        const wxSize& size)
    {
        if (id == wxART_HELP_SIDE_PANEL)
        return wxBitmap(Beenden_xpm);
        if (id == wxART_HELP_SETTINGS)
        return wxBitmap(Konfig_xpm);
        if (id == wxART_MY_PLAY)
        return wxBitmap(Play_xpm);
        if (id == wxART_MY_STOP)
        return wxBitmap(Stop_xpm);
        if (id == wxART_MY_TOOL)
        return wxBitmap(Tools_xpm);
    
        return wxNullBitmap;
    }
    

    in der APP.cpp bei OnInit() noch hinzugefügt

    wxArtProvider::Push(new MyArtProvider);
    

    fehlt noch irgendwas?!? den es klappt ni


Anmelden zum Antworten