| BOOL m_bItemOne, m_bItemTwo, m_bPopupOne, m_bPopupTwo; //用于决定各个菜单项的状态 protected: afx_msg void OnUpdateMenuitemOne(CCmdUI* pCmdUI); afx_msg void OnUpdateMenuitemTwo(CCmdUI* pCmdUI); afx_msg void OnUpdatePopupOne(CCmdUI* pCmdUI); afx_msg void OnUpdatePopupTwo(CCmdUI* pCmdUI); //各菜单项的更新函数 DECLARE_MESSAGE_MAP() |
| BEGIN_MESSAGE_MAP(CMyDoc, CDocument) ON_UPDATE_COMMAND_UI (ID_ITEM_ONE, OnUpdateMenuitemOne) ON_UPDATE_COMMAND_UI (ID_ITEM_TWO, OnUpdateMenuitemTwo) ON_UPDATE_COMMAND_UI (ID_POPUP_ONE, OnUpdatePopupOne) ON_UPDATE_COMMAND_UI (ID_ POPUP_TWO, OnUpdatePopupTwo) END_MESSAGE_MAP() void CMyApp::OnUpdatetMenuitemOne (CCmdUI* pCmdUI) { pCmdUI->Enable(m_bItemOne); if(m_bItemOne) pCmdUI->SetText("Item One"); else pCmdUI->SetText("Item One is now disabled"); } void CMyApp::OnUpdatetMenuitemTwo (CCmdUI* pCmdUI) { pCmdUI->Enable(m_bItemTwo); if(m_bItemTwo) pCmdUI->SetText("Item Two"); else pCmdUI->SetText("Item Two is now disabled"); } void CMyApp::OnUpdatePopupOne(CCmdUI* pCmdUI) { if (pCmdUI->m_pSubMenu != NULL) { BOOL b_Popup = m_bPopupOne || m_bPopupTwo; pCmdUI->m_pMenu->EnableMenuItem(pCmdUI->m_nIndex, MF_BYPOSITION | (bEnable ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); return; } pCmdUI->Enable(m_bPopupOne); } void CMyApp::OnUpdatePopupTwo(CCmdUI* pCmdUI) { pCmdUI->Enable(m_bPopupTwo); } |
| ·VC入门专区 | ·VC高级技术专区 | ||
| ·VC网络通讯编程 | ·VC图像编程 | ||
| ·轻松玩转MFC文档视图架构编程 | |||
| ·深入浅出Win32多线程程序设计 | |||
| ·深入浅出Visual C++动态链接库编程 | |||