Bonjour,

Je développe actuellement une application MFC de type boîte de dialogue. J'aimerais y inclure un menu contextuel appelé à partir du bouton droit de la souris. J'aimerais ne pas avoir à passer par l'éditeur de ressource (c'est pratique, mais ça devient chiant quand on a des modifs à faire).

Mon problème est le suivant : le menu s'affiche, mais quand je clique sur l'un des éléments, mon appli se ferme.

Voilà le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
void COpenglMfcDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
	int i;
	ClientToScreen(&point);
	CMenu menu;
	menu.CreatePopupMenu();
	menu.AppendMenu(MF_STRING, 1, "Premiere option");
	menu.AppendMenu(MF_SEPARATOR);
	menu.AppendMenu(MF_STRING, 2, "Deuxieme option");
	int Result=menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this);
	//Agir en fonction du résultat retourné
	switch (Result)
	{
		case 1 :
			AfxMessageBox("menu 1",MB_OK);
			break;
		case 2 :
			AfxMessageBox("menu 2",MB_OK);
			break;
		default :
			AfxMessageBox("menu annulé",MB_OK);
			break;
	}
	menu.DestroyMenu();
 
	CDialog::OnRButtonDown(nFlags, point);
}
Je me suis inspiré du bout de programme de la FAQ.

Voilà, j'espère que quelqu'un m'aidera à y voir clair. Merci.