2017-09-11 2 views
2

Bonjour à tous,C++ - MFC - Changer le texte d'un CMenu

J'ai créé une application qui gère plusieurs langues. Lorsque je change dynamiquement la langue par défaut de l'application, tout le texte des différents composants graphiques change très bien sauf un composant. Je ne sais pas pourquoi?

J'ai essayé ces lignes pour modifier le texte du titre du menu mais cela ne change que si je mets ma souris dans ce menu.

MENUITEMINFO info; 

info.cbSize = sizeof(MENUITEMINFO); 

info.fMask = MIIM_ID; 



VERIFY(AfxGetMainWnd()->GetMenu()->GetMenuItemInfoA(0, &info, TRUE)); 

AfxGetMainWnd()->GetMenu()->ModifyMenuA(0, MF_STRING | MF_BYPOSITION, info.wID, theApp.vattingTranslation.GetDescription(256).c_str()); 

enter image description here

Pourquoi faut-il pas actualisé automatiquement mon élément de menu "Système"?

Merci à l'avance

+0

Quelle version de VS avez-vous utilisée pour créer cette application? – MKR

Répondre

3

Vous devez appeler une suite fonction DrawMenuBar comme spécifié dans la documentation ModifyMenu:

L'application doit appeler la fonction DrawMenuBar chaque fois qu'un menu modifications, si le menu est en une fenêtre affichée.