Bonjour à tous,
Je mets ce post mais peut être y avez vous déjà répondu (en tout cas j'ai pas trouvé de réponse sur ce sujet).
Mon problème est le suivant:
je veux créer des boutons cliquable (wxBitmapButton) ayant une image avec un fond transparent.
1 2 3 4 5 6
| //Bouton "Historique"
wxImage* hist = new wxImage ();
hist->AddHandler(new wxPNGHandler);
hist->LoadFile(wxT("./Images/historique.png"), wxBITMAP_TYPE_PNG);
wxBitmap* history = new wxBitmap (*hist);
historique = new wxBitmapButton( this, ID_HISTORIQUE, *history, wxPoint(400,200),wxSize(165,94)); |
Les images que j'utilise possède effectivement des fonds transparents (ce sont des .png, .tga, .bmp). Cependant mes boutons apparaissent sous un fond blanc.
J'ai bien essayé de créer une nouvelle classe "Bouton" héritant des wxBitmapButton
class Bouton : public wxBitmapButton
et dans laquelle j'ai mis une fonction une fonction OnPaint(...).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| void Bouton::OnPaint(wxPaintEvent& evt)
{
wxPaintDC MonDc(this);
wxImage* fond = new wxImage ();
fond->AddHandler(new wxPNGHandler);
fond->LoadFile("./Images/historique.png", wxBITMAP_TYPE_PNG);
wxBitmap* bitmap = new wxBitmap (*fond);
MonDc.DrawBitmap(*bitmap, 0, 0);
}
...
//Création du bouton
Bouton* bouton = new Bouton(this,ID_HISTORIQUE,*history,wxPoint(400,200),wxSize(165,94)); |
Rien à faire, mes boutons ont toujours ce fameux fond blanc.
Donc si vous avez déjà rencontré ce problème, tout conseil, bout de code etc... sera le bien venu. Merci d'avance.
Je programme en C++ avec Visual Studio 2005 sous windows XP.
Partager