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 :

[CToolBar] Changer l'infobulle


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut [CToolBar] Changer l'infobulle
    Bonjour,

    Je souhaite changer dynamiquement les informations affichées lors du survol des boutons de la barre d'outils de mon appli C++/MFC.

    Classiquement, on écrit dans la partie "Prompt" de chaque bouton un texte "texteA\ntextB". Le texteA est écrit dans la barre d'état, le texteB en infobulle.

    Pour ce qui est affiché dans la barre d'état, j'ai surchargé la méthode "::GetMessageString(UINT nID, CString& rMessage) const". Cela fonctionne.

    Pour ce qui est de l'infobulle, je n'y arrive pas.

    J'ai besoin de le faire car je passe mon appli en multilangue.

    Merci de vos réponses.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 464
    Par défaut
    Ce n'est pas le bon forum pour les questions MFC.
    http://www.developpez.net/forums/f38...isual-cpp/mfc/

    Les MFC ne dispose-t-elle pas d'un mécanisme d'internationalisation via des dll de ressources ?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut
    Bonjour,

    Il existe bien la String Table pour gérer les différentes traductions. Mais elle s'appuie sur la langue de l'OS. On ne peut donc pas utiliser un mode anglais si l'OS est en langue francaise...

    J'ai donc externalisé toutes les traductions (fichier texte), il ne me reste plus que les infobulles de la toolbar.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 464
    Par défaut
    Avez-vous tentez le code de fourniture de texte dynamique présenté à l'URL suivante ?
    http://support.microsoft.com/kb/188317

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 125
    Par défaut
    J'ai en effet utilisé ce genre de mécanisme pour pouvoir implémenter les infobulles dynamiquement. Une recherche "ToolTip" dans l'aide Visual Studio (msdn) m'a permi d'obtenir les infos recherchées.

    Pour info, voici ce que j'ai écrit :

    Classe MainFrm:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
         ...
         ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipNotify)
    END_MESSAGE_MAP()
    et

    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
    16
    17
    18
     
    BOOL CMainFrame::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
    {
        TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
        UINT nID =pNMHDR->idFrom;
     
        if( nID == ID_BOUTON_1 )
        {
            _mbstowcsz(pTTTW->szText, "TEXTE_A_AFFICHER",sizeof pTTTW->szText);
            return(TRUE);
        }
        else if( nID == ID_BOUTON_2 )
        {
            _mbstowcsz(pTTTW->szText, "TEXTE_A_AFFICHER",sizeof pTTTW->szText);
            return(TRUE);
        }
    ...
    }

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

Discussions similaires

  1. Unité pour changer infobulle des controls
    Par Montor dans le forum Contribuez
    Réponses: 3
    Dernier message: 19/02/2010, 20h42
  2. comment changer la couleur d'une CToolBar ?
    Par ksoft dans le forum MFC
    Réponses: 0
    Dernier message: 30/06/2009, 12h12
  3. Réponses: 2
    Dernier message: 26/06/2002, 13h16
  4. changer de repertoire et situer
    Par chateau dans le forum C
    Réponses: 4
    Dernier message: 24/06/2002, 11h27
  5. changer l'adresse d'un fichier...
    Par cava dans le forum C
    Réponses: 6
    Dernier message: 05/06/2002, 12h22

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