[Win32] Changer le texte d'un menu aprés création

goebish Messages postés 92 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 24 novembre 2008 - 22 janv. 2007 à 10:00
kouax Messages postés 1 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 31 octobre 2009 - 8 févr. 2007 à 16:25
Bonjour,

Je cherche à changer les textes d'un menu aprés sa création:
voila comment je créé mon menu:
m_hMenu = ::CreateMenu();
HMENU hMenuDrive = ::LoadMenu(C_AGDriveApp::m_objectRef.m_hInstance, MAKEINTRESOURCE(IDR_DRIVE));


J'ai essayé
SetDlgItemText( (HWND)hMenuDrive, ID_PARAM_CONNECTION, L"Nouvelle entrée");

Mais bien sur ça ne fonctionne pas, quelqu'un a une idée ?

10 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
22 janv. 2007 à 13:19
Tu peux utiliser SetMenuItemInfo
Comme son nom l'indique, SetDlgItemText est fait pour les boites de dialogue

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
goebish Messages postés 92 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 24 novembre 2008
22 janv. 2007 à 14:08
J'ai bien essayé avec cette fonction, mais ça ne fonctionne pas non plus, surement que je m'y prend mal:

HMENU hMenuDrive = ::LoadMenu(C_AGDriveApp::m_objectRef.m_hInstance, MAKEINTRESOURCE(IDR_DRIVE));
MENUITEMINFO loc_menuInfo;
GetMenuItemInfo( hMenuDrive, ID_PARAM_CONNECTION, FALSE, &loc_menuInfo);
WCHAR * my_data = L"test!!!!!!!\0";
loc_menuInfo.dwItemData = (ULONG_PTR)my_data;
SetMenuItemInfo( hMenuDrive, ID_PARAM_CONNECTION, FALSE, &loc_menuInfo);
DrawMenuBar( m_hWnd);

Aprés ça mon menu a toujours le meme texte au lieu de "test!!!!!!!"
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
22 janv. 2007 à 14:15
Salut,
Essayes avec l'ancienne fonction : ModifyMenu( )
qui est plus directe.
0
goebish Messages postés 92 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 24 novembre 2008
22 janv. 2007 à 14:20
Pas mieu ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
22 janv. 2007 à 14:26
Tu as oublié le fMask à MIIM_DATA avant d'appeler setMenuItemInfo.
0
goebish Messages postés 92 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 24 novembre 2008
22 janv. 2007 à 14:32
J'ai essayé

loc_menuInfo.fMask |= MIIM_DATA;
et
loc_menuInfo.fMask = MIIM_DATA;

avant mon SetMenuItemInfo, mais même résultat !
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
22 janv. 2007 à 14:58
Le problème vient peut etre de plus loin, d'ou essayes tu de changer le texte d'un menu ?
0
goebish Messages postés 92 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 24 novembre 2008
22 janv. 2007 à 15:16
De mon appli, comme mon code le montre, juste aprés le chargement de ce menu a partir d'une ressource.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
22 janv. 2007 à 15:44
Avant d'appeler GetMenuItemInfo, il faut initialiser la structure (cbSize en particulier, et dwTypeData pour le texte)
En l'occurence, ca ne sert à rien d'appeler GetMenuItemInfo, il faut juste appeler SetMenuItemInfo

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
kouax Messages postés 1 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 31 octobre 2009
8 févr. 2007 à 16:25
Bonjour à tous,

Je voudrais savoir si ce problème a été résolu, car j'ai le même problème en ce moment?

Merci.
0
Rejoignez-nous