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

MFC Discussion :

pb avec seticon dans un bouton


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut pb avec seticon dans un bouton
    Slt,

    je voudrai mettre dans un bouton une icone qui se trouve en ressource,

    j'ai bien tenté ce genre de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetDlgItem(IDC_BUTTON1)->SetIcon(::LoadIcon(NULL, IDI_ICON1), TRUE);
    mais rien ny fais, j'ai des erreurs
    error C2664: 'LoadIconA' : cannot convert parameter 2 from 'int' to 'LPCSTR'
    Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
    Jdois my prendre comment ?

    de +, a quoi sert la propriete Bitmap du bouton, j'ai pas trouvé de SetBitmap

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Utilise MAKEINTRESOURCE(IDI_ICON1) au lieu de IDI_ICON1 tout court.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    ca donne rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    BOOL DlMenu::OnInitDialog()
    {
    	CDialog::OnInitDialog();
     
    	GetDlgItem(IDC_BUTTON1)->SetIcon(::LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON1)), TRUE);
     
    	return TRUE;  
    }
    mon icone ne s'affiche pas dans le bouton

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Mais ça fait plus d'erreur de compil, au moins...

    Tu as pensé à donner le style "icon" à ton bouton?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    oui

    mais ca change rien

  6. #6
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    LoadIcon retourne quoi ???

    il faut toujours tester les retours de fonction

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    j'ai testé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		LPTSTR ptr = MAKEINTRESOURCE(IDI_ICON1);
    	HICON icone = ::LoadIcon(NULL, ptr);
    	GetDlgItem(IDC_BUTTON1)->SetIcon(icone, TRUE);
    effectivement, il semble que ce MAKEINTRESOURCE qui retourne un mauvais pointeur

    pourtant, IDI_ICON1 est bien une icone en ressource, jpiges pas

    j'ai meme testé avec l'icone de base : IDR_MAINFRAME, c'est la meme chose

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Avec ::LoadIcon(NULL, ...) tu ne peux récupérer que des icônes système.
    Tu dois utiliser CWinApp::LoadIcon() ou bien passer à ::LoadIcon() le HINSTANCE de ton application.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    je connais pas tout ca, c'est quoi (et comment on le choppe) le HINSTANCE de l'application ?

    CWinApp::LoadIcon(IDI_ICON1) donne une erreur
    error C2352: 'CWinApp::LoadIconA' : illegal call of non-static member function
    sur le net j'ai trouvé ca.... ca compile mais ca fait rien de plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void DlMenu::OnBnClickedButton1()
    {
    	CWinApp *app = AfxGetApp();
    	HICON icone = app->LoadIcon(IDI_ICON1);
    	GetDlgItem(IDC_BUTTON1)->SetIcon(icone, TRUE);
    }

  10. #10
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut

  11. #11
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    t'as essayé de le faire dans le OnInitDialog ??

  12. #12
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    oui, j'ai bien essayé mais ca donne rien

    je desespere vraiment la !

    je seche completement, pas moyen de mettre une image dans un bouton

  13. #13
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    faut il mettre le code qui dessine l'icone dans un évenement quelconque ?
    genre paint ou autre

  14. #14
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut
    essaye ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CButton *pButton=static_cast<CButton *>(GetDlgItem(IDC_BUTTON1));
    pButton->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1));
    le bouton doit avoir la propriete icone cochée.
    et ça fonctionne je viens de faire l'essai rapidement.

  15. #15
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    yes ! ca marche !

    merci bien,

    dis moi, mon erreur se situait où ?

  16. #16
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par firejocker
    yes ! ca marche !

    merci bien,

    dis moi, mon erreur se situait où ?
    il y a deux fonctions SetIcon :
    une sur la classe de base CWnd
    une sur la classe CButton .
    toi tu as utilisé implicement la premiere vu que tu n'as pas caster le retour de GetDlgItem ...

  17. #17
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    ah....

    ok merci beaucoup

    j'imagine que c'est la meme chose pour mettre un bitmap a la place de l'icone

    encore merci

  18. #18
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Donc, la fonction SetIcon n'était pas virtuelle?
    On ne s'y attend pas, avec MFC...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par Médinoc
    Donc, la fonction SetIcon n'était pas virtuelle?
    On ne s'y attend pas, avec MFC...
    ce n'est pas la meme signature donc deux fonctions differentes...

  20. #20
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    ma fois, pour les bitmap... je vois pas ... tans pis

    mais comment puis je mettre à la fois une icone et un texte dans un bouton ?

    en delphi, c'est pas dur, mais la, je vois vraiment pas

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. userform avec checkbox ou bouton multi choix avec tri dans excel
    Par lucioleyankee dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/06/2011, 17h38
  2. créer un bouton avec hyperlien dans une fonction JS
    Par Rammazotti dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/03/2011, 11h09
  3. Réponses: 8
    Dernier message: 28/05/2009, 10h40
  4. bmp non visible dans un bouton avec texte
    Par CAMIC dans le forum Windows
    Réponses: 8
    Dernier message: 27/03/2007, 10h24
  5. probleme bouton radio avec onChange dans formulaire
    Par wil4linux dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/09/2005, 11h26

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