上一贴:
http://community.csdn.net/Expert/TopicView1.asp?id=3249014
谢谢 DentistryDoctor(牙科医生)
您的方法非常好。。现在我又遇到了另外一个问题。
我有一些功能按钮的ID是和一些菜单项相同的,
我想在屏蔽这些菜单的时候也让这些按钮不可用,但是,我通过资源ID无法找到这个按钮,请问我该如何来解决?
http://community.csdn.net/Expert/TopicView1.asp?id=3249014
谢谢 DentistryDoctor(牙科医生)
您的方法非常好。。现在我又遇到了另外一个问题。
我有一些功能按钮的ID是和一些菜单项相同的,
我想在屏蔽这些菜单的时候也让这些按钮不可用,但是,我通过资源ID无法找到这个按钮,请问我该如何来解决?
BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
if(nID >= ID_PLUGINMENU && nID < ID_PLUGINMENU+m_PlugInNum)
{
INT nIndex = nID - ID_PLUGINMENU;
PPLUGININFO pPlug =((PPLUGININFO)m_pPlugInManager->m_PlugInList.GetAt(nIndex)); if(nCode == CN_UPDATE_COMMAND_UI)
{
INT ii = m_pPlugInManager->GetModule(); // Update UI element state
((CCmdUI *) pExtra)->Enable(TRUE);
if (pPlug->bSelect)
{
if (m_pPlugInManager->GetModule() == nIndex)
{
((CCmdUI *) pExtra)->SetCheck(TRUE);
}
else
{
((CCmdUI *) pExtra)->SetCheck(FALSE);
}
}
return TRUE;
}
}
}
hWnd = GetTopWindow( hWnd );
while ( hWnd )
{
UINT nID=CWnd::FromHandle(hWnd)->GetDlgCtrlID();
...
hWnd = GetNextWindow( hWnd, GW_HWNDNEXT );
}
我是直接GetMenu()方法获取菜单的
但是屏蔽不了。为何?