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 :

modification du texte dans un menu


Sujet :

MFC

  1. #1
    Membre confirmé

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut modification du texte dans un menu
    Slt,

    je voulais modifier le texte dans un menu, mais a ma grande surprise,
    en le faisant, je perd l'action qu'il etait sensé lancer lors du clic

    mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GetMenu()->GetSubMenu(0)->ModifyMenu(i, MF_BYPOSITION, 1000, _T("test"));
    Quelle est mon erreur ici ?

    merci

  2. #2
    Membre régulier Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Points : 99
    Points
    99
    Par défaut
    Salut,

    j'suis super content, c'est la 1ère fois que je vais pouvoir répondre à une question

    regarde ma question du 7 decembre
    [MFC] Menu inaccessible après changement de nom

    j'avais le même problème.

    la solution est qu'en 3ème position, il faut lui donner le nouvel ID de l'item (le même en fait)
    j'essaierai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetMenu()->GetSubMenu(0)->ModifyMenu(i, MF_BYPOSITION, i, _T("test"));
    Dis-moi si ça marche
    Philippe
    Philippe

  3. #3
    Membre émérite
    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
    Points : 2 747
    Points
    2 747
    Par défaut Re: modification du texte dans un menu
    Citation Envoyé par firejocker
    Slt,

    je voulais modifier le texte dans un menu, mais a ma grande surprise,
    en le faisant, je perd l'action qu'il etait sensé lancer lors du clic

    mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GetMenu()->GetSubMenu(0)->ModifyMenu(i, MF_BYPOSITION, 1000, _T("test"));
    Quelle est mon erreur ici ?

    merci
    de ne jamais tester les pointeurs de retour
    il y a du linge sur la corde à linge

  4. #4
    Membre confirmé

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    Citation Envoyé par Philippe320
    la solution est qu'en 3ème position, il faut lui donner le nouvel ID de l'item (le même en fait)
    j'essaierai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetMenu()->GetSubMenu(0)->ModifyMenu(i, MF_BYPOSITION, i, _T("test"));
    Dis-moi si ça marche
    non, ca donne rien

    Citation Envoyé par la drogue c'est mal
    de ne jamais tester les pointeurs de retour
    comment ca ? mes menus sont fixes, pourqui les tester ?

  5. #5
    Membre confirmé

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    par contre, tu m'as mis sur la bonne piste (etant donné que tu avais raison)

    en fait, c'est ce code qui fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CMenu *pMenu = GetMenu(), *pSousMenu;
     
    pSousMenu = pMenu->GetSubMenu(0);
     
    pSousMenu->ModifyMenu(i, MF_BYPOSITION, pSousMenu->GetMenuItemID(i), _T("TEST"));

  6. #6
    Membre confirmé

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    tiens, un truc bizarre que je ne m'explique pas,

    je pensais que ce code etait bon, mais ce n'est pas le cas,

    les actions sont bien conservé, mais l'état de l'item change,

    ceux qui sont grisé apparaissent comme dégrisé après la modif du texte

    pourquoi cela ?

    rappel de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	CMenu *pSousMenu = GetMenu()->GetSubMenu(0);
    	pSousMenu->ModifyMenu(0, MF_BYPOSITION, pSousMenu->GetMenuItemID(0), _T("TEST"));

  7. #7
    Membre confirmé

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    Pour le moment, j'y remedie en stoquant l'etat :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CMenu *pSousMenu = GetMenu()->GetSubMenu(0);
    UINT MemEtat = pSousMenu->GetMenuState(0, MF_BYPOSITION);
    pSousMenu->ModifyMenu(0, MF_BYPOSITION, pSousMenu->GetMenuItemID(0), _T("TEST")); 
    pSousMenu->EnableMenuItem(0, MF_BYPOSITION |MemEtat);
    Si quelqu'un sait faire autrement, ne pas hesiter ....

    sinon, jvais tagger en Resolu ce post.

    Merci.

  8. #8
    Membre émérite
    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
    Points : 2 747
    Points
    2 747
    Par défaut
    comment ca ? mes menus sont fixes, pourqui les tester ?
    parce que tu n'as jamais l'assurance qu'un pointeur peut etre non null
    il y a du linge sur la corde à linge

  9. #9
    Membre confirmé

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Points : 546
    Points
    546
    Par défaut
    ok.

    et s'il sont nul, ca veut dire quoi ?

  10. #10
    Membre émérite
    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
    Points : 2 747
    Points
    2 747
    Par défaut
    probleme de chargement des resources
    il y a du linge sur la corde à linge

Discussions similaires

  1. Problème pour centrer verticalement le texte dans un menu
    Par Greg12345 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 26/05/2010, 19h43
  2. Problème de modification de texte dans une testbox majuscule
    Par Chacha35 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 11/09/2009, 16h02
  3. Modification de texte dans une balise div
    Par lulu70 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/09/2007, 10h47
  4. alignement text dans un menu avec ie
    Par HADES62 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 10/05/2006, 19h49

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