Je ne suis pas en train d'utiliser pCmdInfo->lpVerb
mais mon problème est de savoir comment allons-nous gérer la situation lorsque nous créons dynamiquement les sous-menus rightclick. Par exemple, je le scénario suivant:Pouvons-nous exécuter rightclick sans utiliser pCmdInfo-> lpVerb
if(strcmp(cRegKeyVal,"Connected")==0)
{
//g_bConnectStatus=TRUE;
InsertMenu (m_hSubmenu , 0, MF_BYPOSITION|MF_GRAYED, m_uCmdID++, _T("Connect"));
InsertMenu (m_hSubmenu , 1, MF_BYPOSITION, m_uCmdID++, _T("DicConnect"));
InsertMenu (m_hSubmenu , 2, MF_BYPOSITION, m_uCmdID++, _T("Configure"));
InsertMenu (m_hSubmenu , 3, MF_BYPOSITION, m_uCmdID++, _T("Menu4"));
InsertMenu (m_hSubmenu , 4, MF_BYPOSITION, m_uCmdID++, _T("About"));
}
else
{
//g_bConnectStatus=FALSE;
InsertMenu (m_hSubmenu , 0, MF_BYPOSITION, m_uCmdID++, _T("Connect"));
InsertMenu (m_hSubmenu , 3, MF_BYPOSITION, m_uCmdID++, _T("Help"));
InsertMenu (m_hSubmenu , 4, MF_BYPOSITION, m_uCmdID++, _T("About"));
}
..
..
InsertMenuItem (hmenu, uMenuIndex, TRUE, &mii);
}
maintenant Si j'utilise pCmdInfo->lpVerb
avec boîtier de commutation, comme l'a démontré ci-dessous, puis Case 1
est CHAISE Que je clique sur DisConnect
(Menu Article Inséré dans Si condition extrait de code ci-dessus) ou Help
(Menu élément inséré dans Autres partie en tant que fragment de code ci-dessus)
switch (LOWORD(pCmdInfo->lpVerb))
{
case 0:
{
//Your Logi for Case-0
}
break;
case 1:
{
//Your Logi for Case-I
}
break;
}
Essayé avec le Code. Lors de l'affectation de m_ConnectID = m_uCmdID ++, m_ConnectID contient une valeur proche de 3081 alors que pCmdInfo-> lpVerb = contient les valeurs (peut être des valeurs d'index) comme 0,1,3..So le Compare ne rapporte aucun match. En outre le InsertMenu ne prend pas 2 arguments. – Simsons
C'était pseudo-code à des fins d'illustration. Je suppose que lpVerb contient l'index au lieu de l'identifiant, donc vous devez stocker les index au lieu des identifiants. – Luke
Dans ce cas, l'index sera le même pour les 3 premiers éléments de sous-menu dans les conditions Si et Sinon. – Simsons