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 le nom d'un item dans un menu (CMenu/MFC)


Sujet :

MFC

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Changer le nom d'un item dans un menu (CMenu/MFC)
    Bonjour,

    Je développe une application multi-langue SDI (Doc/vue) sous visual c++ 2003.
    Je vais chercher dans un fichier ini différentes chaînes de caractères en fonction de la langue choisie par l'utilisateur.
    Mon problème est que je n'arrive pas à traduire certains éléments du menu principal (les entêtes)

    Voici ce que je fais (je n'ai mis la partie récupération de données dans le fichier ini pour clarifier le code)
    Code dans la fonction OnInitialUpdate() de ma CFormView.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CMenu* mMenu = AfxGetMainWnd()->GetMenu();
    UINT idMenu = mMenu->GetMenuItemID(0);
    mMenu->ModifyMenu(idMenu, MF_BYCOMMAND, idMenu, "Nouveau nom" );
    En revanche cela fonctionne pour les sous menus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CMenu* subMenu = mMenu->GetSubMenu(0);
    idMenu = subMenu->GetMenuItemID(0);
    subMenu->ModifyMenu(idMenu, MF_BYCOMMAND, idMenu, "Txt sub menu" );
    Merci d'avance pour vos réponses !
    Seb.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Je pense que ton problème vient du fait que les menu principaux n'ont pas de COMMAND associée.
    Il faut utiliser MF_BYPOSITION
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    subMenu->ModifyMenu(idMenu, MF_BYPOSITION, idMenu, "Txt sub menu" );

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut ram_0000,

    je viens d'essayer avec MF_BYPOSITION à la place de MF_BYCOMMAND mais j'obtiens le même résultat.

    Je vais regarder du côté de SetMenuInfo() ou SetMenuItemInfo().

    D'autres idées sont les bienvenues !

Discussions similaires

  1. SQL-Server changer le nom d'une colonne dans une table .
    Par silset dans le forum Développement
    Réponses: 2
    Dernier message: 31/10/2009, 23h34
  2. Changer le nom de l'exécutable dans le gestionnaire des tâches
    Par Sophie L. dans le forum Général Java
    Réponses: 3
    Dernier message: 25/08/2008, 14h51
  3. changer le nom d'un TabPage dans un TabControl
    Par DEV-10 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/09/2007, 16h58
  4. [sql 2005]: changer le nom d'une colonne dans un table
    Par TheLittle dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/06/2006, 15h29
  5. Changer le "Nom de l'image" dans l'onglet processu
    Par Thomas1434 dans le forum Windows
    Réponses: 1
    Dernier message: 24/02/2006, 04h07

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