Я не агнеист, использующий 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 );
}
Сейчас. Если я использую pCmdInfo->lpVerb
с регистром переключателя, как показано ниже, то Case 1
выполняется. Я нажимаю DisConnect
(пункт меню вставлен в Если условие в приведенном выше фрагменте кода) или Help
(элемент меню вставлен в остальное часть, как в приведенном выше фрагменте кода)
switch ( LOWORD( pCmdInfo->lpVerb) )
{
case 0:
{
//Your Logi for Case-0
}
break;
case 1:
{
//Your Logi for Case-I
}
break;
}