Voici le code que j'ai utilisé pour faire apparaître un menu lorsque l'on clique sur le bouton droit de la souris :
void CClass::OnRButtonDown(UINT nFlags, CPoint point)
{
CMenu menu, *pPopup;
menu.LoadMenu(IDR_MENUCLKRIGHT);
ASSERT(menu.m_hMenu != NULL);
pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
pPopup->AssertValid();
int nResult = pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
menu.DestroyMenu();
CFormView::OnRButtonDown(nFlags, point);
}
Pas de pb, cela marche très bien.
Le soucis, c'est que je n'arrive pas à griser les commandes du menu IDR_MENUCLKRIGHT. J'utilise les fonctions du type:
void CClass::OnUpdateMenuclickrightMenu1(CCmdUI* pCmdUI)
{
pCmdUI->Enable(FALSE);
}
Lorsque je clique sur Menu1, cela ne lance pas la fonction concernée mais l'apparence du texte "Menu1" n'est pas grisée!!!
Quelqu'un a une idée ?
Merci d'avance