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 :

Personnaliser MessageBox ou AfxMessageBox


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Par défaut Personnaliser MessageBox ou AfxMessageBox
    Bonjour a tous,

    Sauriez-vous s'il est possible de mettre des images dans les boutons OK et CANCEL d'une MessageBox ? Ou existe-t-il une classe existante permettant d'avoir ce genre de messageBox ?

    Sinon je peux en creer une moi-meme en creant une nouvelles fenetre Dialog.
    Mais comment faire pour recuperer les actions sur les boutons OK et CANCEL, et attendre qu'un de ces boutons soit clique pour continuer l'execution du programme.

    Par avance, merci.

    Greg

  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
    Citation Envoyé par winnyzeboss1 Voir le message
    Bonjour a tous,

    Sauriez-vous s'il est possible de mettre des images dans les boutons OK et CANCEL d'une MessageBox ? Ou existe-t-il une classe existante permettant d'avoir ce genre de messageBox ?
    Je ne crois pas.

    Sinon je peux en creer une moi-meme en creant une nouvelles fenetre Dialog.
    Mais comment faire pour recuperer les actions sur les boutons OK et CANCEL, et attendre qu'un de ces boutons soit clique pour continuer l'execution du programme.
    Il te suffit de faire une boîte de dialogue modale, et de donner les bons ids aux boutons: IDOK, IDCANCEL.
    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
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par winnyzeboss1 Voir le message
    Bonjour a tous,

    Sauriez-vous s'il est possible de mettre des images dans les boutons OK et CANCEL d'une MessageBox ? Ou existe-t-il une classe existante permettant d'avoir ce genre de messageBox ?
    De mémoire, je n'en vois pas. Mais d'autre peut être pourront t'en proposer.
    Citation Envoyé par winnyzeboss1 Voir le message
    Sinon je peux en creer une moi-meme en creant une nouvelles fenetre Dialog.
    Mais comment faire pour recuperer les actions sur les boutons OK et CANCEL, et attendre qu'un de ces boutons soit clique pour continuer l'execution du programme.

    Par avance, merci.

    Greg
    Tu donnes simplement les identifiants ID_OK et ID_CANCEL à tes boutons. Ensuite, CMaDialog().DoModal() pour attendre que l'utilisateur en termine avec ta boîte de dialogue. Cette fonction te retourne IDOK ou IDCANCEL selon la façon dont tu as quitté la boîte.

  4. #4
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Salut,

    DArchi & Médinoc : réponses presque identiques à 1 minute d'intervalle. Joli !

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par PetitPapaNoël Voir le message
    Salut,

    DArchi & Médinoc : réponses presque identiques à 1 minute d'intervalle. Joli !
    Si Médinoc permet : Les grands esprits se rencontrent

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Par défaut
    Bonjour, et merci pour vos reponses !

    Je rencontre toutefois un probleme. Comment faire pour que le message que je veux afficher dans ma Dialog soit specifier pour chaque Dialog. C'est a dire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ( CMessageBox("Do you really want to cancel ?").DoModal() == IDOK )
    	{
    		PressButton(PSBTN_CANCEL);
    		closeOSK(); // We close the On-Screen Keyboard
    	}

    A la place de ceci qui fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ( CMessageBox().DoModal() == IDOK )
    	{
    		PressButton(PSBTN_CANCEL);
    		closeOSK(); // We close the On-Screen Keyboard
    	}

    J'ai cree un nouveau constructeur mais ca plante ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CMessageBox::CMessageBox(CString str)
    	: CMcsDialog(CMessageBox::IDD)
    {
    	::SetWindowTextA( m_MessageBoxText , str );
    }
    Greg.

  7. #7
    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
    SetWindowText() ne peut pas marcher tant que la boîte de dialogue n'est pas "créée" au sens de Windows.

    Ce que ton constructeur doit faire, c'est mémoriser le texte dans une variable membre, et appeler SetWindowText() dans le OnInitDialog().
    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.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Par défaut
    Merci beaucoup ! Trop l'habitude de Java !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. messagebox et afxmessagebox
    Par titajeff dans le forum MFC
    Réponses: 2
    Dernier message: 27/04/2011, 08h27
  2. [VS2005]Personnalisation des Boutons d'un MessageBox
    Par gassisprog dans le forum Windows Forms
    Réponses: 5
    Dernier message: 22/04/2008, 19h05
  3. [VB.NET 2.0] Comment personnaliser un MessageBox ?
    Par MattC dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/06/2006, 17h09
  4. [MessageBox] peut-on la personnaliser?
    Par pitit777 dans le forum MFC
    Réponses: 5
    Dernier message: 07/04/2006, 22h16
  5. MessageBox et AfxMessageBox
    Par alliance dans le forum MFC
    Réponses: 1
    Dernier message: 18/07/2005, 10h18

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