Changer le nom d'un item dans un menu (CMenu/MFC) - C++ - Programmation
Marsh Posté le 11-12-2008 à 16:19:27
sebdino a écrit : Bonjour, |
Marsh Posté le 11-12-2008 à 16:26:18
sebdino a écrit : Bonjour, |
Bonjour Seb,
Je travaille sur le le même sujet sur un vieux projet en visual C++ 6.0
Tu m'as mis sur la piste, pour arriver au bon résultat tu ne peux pas utiliser de idMenu car le menu principal n'en possède pas donc mMenu->GetMenuItemID(0) ne fonctionne pas.
Il faut donc écrire :
mMenu->ModifyMenu(0, MF_BYPOSITION, 0, "Nouveau nom" ); pour le premier menu
mMenu->ModifyMenu(1, MF_BYPOSITION, 1, "Nouveau nom" ); pour le deuxième, etc.
Vincent
Marsh Posté le 09-04-2008 à 22:50:04
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.
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 :
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.