Zootella
Messages postés252Date d'inscriptionvendredi 10 juin 2005StatutMembreDernière intervention 5 septembre 2006
-
15 juin 2005 à 02:52
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
15 juin 2005 à 21:31
Hello all;
Voilà, dans un programme j'utilise une fonction qui me rajoute toutes
les entrées d'une liste box dans le menu da la fenetre principale.
Le probléme c'est comment savoir quel menu a été selectionné! il faut
mettre un ID différent pour chaque item ajouté, par exemple :
#define ID_MENU 3000
for (i = 0; i < Count; i++)
{
SendMessage(hList, LB_GETTEXT, i, (LPARAM)Text);
AppendMenu(hSubMenu, MF_STRING, ID_MENU + i, Nick);
}
ID_MENU + i pour avoir un id différent à chaque fois, mais comment
intercpeter ces ID_MENU dans une procédure callback ? tel est la
question! Merci.
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 20218 15 juin 2005 à 09:25
en VC++, j'utilise une de ces 2 commandes dans la message MAP:
ON_COMMAND(ID, fonction_pour_ID)
ou
ON_COMMAND_RANGE(ID1,ID2, fonction_IDS) et dans fonction_IDS il faut traiter les différents ID par un switch.
j'espère que celà va t'aider
Zootella
Messages postés252Date d'inscriptionvendredi 10 juin 2005StatutMembreDernière intervention 5 septembre 2006 15 juin 2005 à 10:46
Efféctivement je n'utilise pas MFC, donc id dans WM_COMMAND,
LOWORD(wParam). Sinon j'ai pensé à utiliser le return de TrackPopupMenu
mais c'est un menu de la fenetre, donc est-ce possible d'afficher un
menu de fenetre avec TrackPopupMenu ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 juin 2005 à 15:06
Ca dépend de ce que tu veux faire dans le WM_COMMAND. Si tu veux
afficher un message par exemple, eh bien tu peux utiliser un tableau t
pour ca. Et tu fais:
Zootella
Messages postés252Date d'inscriptionvendredi 10 juin 2005StatutMembreDernière intervention 5 septembre 2006 15 juin 2005 à 21:20
Afficher le nom du menu séléctionner.
if((HMENU)(LOWORD(wParam)) == hmenu :
l'ID sera toujours le même non?; Sinon j'ai esseyé avec un seul ID pour tous les menus puis dans le WM_COMMAND utiliser MenuItemFromPoint, mais ça ne marche pas.
Comme tu le vois, on n'a pas besoin de connaitre tous les items du menu <link href="../../../../../css/ie4.css" type="text/css" rel="stylesheet"><!-- @ --><link href="../../../../../css/inetsdk.css" type="text/css" rel="stylesheet"><!-- @ --><style type="text/css">
PRE.clsCode { font-size:110%; }
PRE.clsSyntax { font-size:100%; }
TD DIV.clsBeta { display:none;}