IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxWidgets Discussion :

Boutons à fond transparent avec wxWidgets


Sujet :

wxWidgets

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut Boutons à fond transparent avec wxWidgets
    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.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class Bouton : public wxBitmapButton
    et dans laquelle j'ai mis une fonction une fonction OnPaint(...).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut
    Salut mr_mimyl,
    Je pense que la 1ère étape serait deja d'afficher un png sans l'associer à un bouton jete un oeil sur la classe wxMemoryDC et au sample fourni avec la librairie wxWidgets -> png, cela t'aidera !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut
    Salut Jérémy,
    Tout d'abord, merci pour ton aide.
    Je pense que la 1ère étape serait deja d'afficher un png sans l'associer à un bouton
    J'ai effectivement déjà afficher un png sans l'associer à un bouton, en utilisant justement dans la méthode "OnPaint(wxPaintEvent& evt)", la fonction "DrawBitmap(bitmap,x,y)". De plus, comme mes images ont bien un fond tranparent (créé avec "The Gimp" et enregistré en .png), celle-ci s'affiche bien sur mon panel sur fond transparent.
    jete un oeil sur la classe wxMemoryDC
    J'ai regarder la classe "wxMemoryDC" et d'après ce que j'ai compris (tu me diras si je me trompe), elle sert à modifier une bitmap or ce n'est pas mon cas vu que mes bitmap s'affichent bien. Mon soucis c'est d'associer mes bitmap à un bouton tout en gardant un affichage correct c'est à dire un fond transparent. A moins que je n'ai pas compris le rôle de la classe wxMemoryDC, je ne vois pas comment l'utiliser vis à vis de mon problème.
    au sample fourni avec la librairie wxWidgets -> png
    Par contre, je ne vois pas de quel sample, tu parles. Pourrais tu préciser ??

  4. #4
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut
    Par contre, je ne vois pas de quel sample, tu parles. Pourrais tu préciser ??
    dans le repertoire sample des sources de wxwidgets que tu as télécharger tu as un repertoire png tu peux compilé le projet avec ton ide VS2005

    pourt le reste je vais essayé de faire des test

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut
    j'ai regardé le source du repertoire png et je t'avoue que ça ne m'a pas trop aidé. Je continue à chercher de mon côté.

  6. #6
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Par défaut
    As-tu essayé en faisant hériter ta classe "bouton" de wxWindow et en utilisant SetShape?

Discussions similaires

  1. [SP-2007] Afficher des images avec un fond transparent avec le composant "Summary link webpart"
    Par cloeclodesonoeuf dans le forum SharePoint
    Réponses: 1
    Dernier message: 20/09/2012, 10h35
  2. Scène avec fond transparent
    Par jcs2 dans le forum OpenGL
    Réponses: 3
    Dernier message: 01/03/2006, 10h19
  3. [FLASH] Comment créer un bouton à fond transparent ?
    Par langela94 dans le forum Flash
    Réponses: 2
    Dernier message: 20/01/2006, 15h01
  4. Image avec fond transparent
    Par Virgile59 dans le forum Access
    Réponses: 3
    Dernier message: 16/09/2005, 11h48
  5. [JButton] avec un fond transparent
    Par Tiercel dans le forum Composants
    Réponses: 6
    Dernier message: 23/09/2004, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo