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 :

Changer un caption dans un menu


Sujet :

MFC

  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 Changer un caption dans un menu
    Bonjour,

    J'ai la tete dans la faq, vers ici

    mais je vois pas comment changer simplement le caption d'un element du menu (sans changer ce qu'il fait)

    j'ai tenté : GetDlgItem(ID_MENU_LANGUE)->SetWindowText('English');
    l'erreur !!

    je test un peu tout mais jtrouve pas ....

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Cherche à SetMenuItemInfo()...
    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 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,
    il faut que tu recuperes un pointeur sur ton menu .
    si c'est une Dialogue GetMenu() doit suffire.
    ensuite que tu utilise la fonction
    CMenu::ModifyMenu
    bien lire la doc MSDN avant.

  4. #4
    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 du mal la !

    comment ca marche le GetMenu?

    GetDlgItem(ID_MENU_LANGUE)->GetMenu();

    ca c'est bon ?

  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
    jcomprend pas la

    j'obtiens l'erreur :
    c:\Mes documents\Visual Studio Projects\Test\TestDlg.cpp(179) : error C2039: 'GetMenuInfo' : is not a member of 'CMenu'
    avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	CMenu* pMenu = GetDlgItem(ID_MENU_LANGUE)->GetMenu();
    	MENUITEMINFO* pMenuItemInfo;
     
    	pMenu->GetMenuInfo(pMenuItemInfo);
    et pourtant quand je fais F1 sur CMenu, dans l'aide [MFC Library Reference - CMenu Members] elle apparait bien

    que se passe t'il alors ?

  6. #6
    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
    le menu que tu essayes de changer il est situé ou ?
    quelle est la classe fenetre utilisée ? CFormView,CDialog ?
    si c'est une Dialogue GetMenu() tout court suffit ...


  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
    Ben c'est un projet Dialog,

    j'ai rajouté le menu comme tu me l'as indiqué hier (via la faq)

    mais jtrouve pas son nom pour faire un getmenu

  8. #8
    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
    tu n'as pas besoin du nom puisqu'il est chargé sur la dialogue ...
    juste GetMenu() !

  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
    ok pour ca,

    donc maintenant, j'ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	CMenu* pMenu = GetMenu(); 
    	MENUITEMINFO* pMenuItemInfo;
     
    	pMenu->GetMenuInfo(pMenuItemInfo);
    mais j'ai toujours la même erreur :

    c:\Mes documents\Visual Studio Projects\Test\TestDlg.cpp(179) : error C2039: 'GetMenuInfo' : is not a member of 'CMenu'

  10. #10
    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 farscape
    salut,
    il faut que tu recuperes un pointeur sur ton menu .
    si c'est une Dialogue GetMenu() doit suffire.
    ensuite que tu utilise la fonction
    CMenu::ModifyMenu
    bien lire la doc MSDN avant.
    j'ai jamais dis ça.

  11. #11
    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
    ok, jsuis en train de lire ca ....

    mais pourquoi a ton avis GetMenuInfo genere une erreur disant qu'il ne fait pas parti de CMenu alors qu'il apparait dans sa doc ?

  12. #12
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BOOL GetMenuInfo(
      HMENU hmenu,            // handle to menu
      LPCMENUINFO lpcmi       // menu information
    );
    est une api32 ,elle n'est pas une fonction membre de CMenu ,relis bien la doc ...


  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
    jpiges pas alors !

    en faisant F1 sur CMenu puis dans la section Menu Item Operations : GetMenuInfo

    MFC Library Reference
    CMenu::GetMenuInfo

    Retrieves information for a menu.

    BOOL GetMenuInfo(
    LPMENUINFO lpcmi
    ) const;
    Parameter
    lpcmi

    A pointer to a MENUINFO structure containing information for the menu.
    Return Value
    If the function succeeds, the return value is nonzero; otherwise, the return value is zero.

    Remarks
    Call this function to retrieve information about the menu.

    See Also
    CMenu Overview | Class Members | Hierarchy Chart | SetMenuInfo

  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
    quel compilateur utilises tu ? et quelle aide ?
    suivant les versions vc6 .net et .net 2005 il y a des evolutions .
    si tu regarde l'aide 2005 ok GetMenuInfo fait partie de la classe CMenu.
    avec VC6 non.
    si tu veux utiliser cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CMenu* pMenu = GetMenu();
       MENUITEMINFO* pMenuItemInfo;
     
     GetMenuInfo(pMenu->GetSafeHmenu( ),pMenuItemInfo);

  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
    C'est l'allu ca !

    j'ai donc VC6.net et la doc de 2005 ????


    pour info, j'ai fais ca et ca marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     CMenu *pMenu = GetMenu()->GetSubMenu(0);
     
     pMenu->ModifyMenu(1, MF_BYPOSITION, 0, _T("&Modif"));
    merci bien

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

Discussions similaires

  1. Changer image au survol dans un menu
    Par lelectronique.com dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 29/06/2012, 16h05
  2. changer une image dans un menu
    Par lelectronique.com dans le forum jQuery
    Réponses: 4
    Dernier message: 03/01/2011, 18h50
  3. changer image d'un li quand clic dans un menu
    Par niro75 dans le forum jQuery
    Réponses: 2
    Dernier message: 03/05/2010, 13h34
  4. Réponses: 2
    Dernier message: 22/04/2008, 12h04
  5. Changer la couleur sur clique d'un onglet dans un menu
    Par nadiaflamingenierie dans le forum Général JavaScript
    Réponses: 44
    Dernier message: 18/04/2008, 15h56

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