2011-07-21

[MFC] 對 Menu item 做 Enable/Disable 或 Check/Uncheck

當使用者下拉一個 menu 時,若沒有在 ON_UPDATE_COMMAND_UI
或 ON_COMMAND 事件底下做處理,則對 menu 所做的動作是
無效的.此時 CFrameWnd::m_bAutoMenuEnable 預設是 True
,如果設定為 False,則對 menu 所做的動作是有效的,也就
是說不用在 ON_UPDATE_COMMAND_UI 或 ON_COMMAND 事件
底下做處理即可對 menu item 做 Enable/Disable 或者是
Check/Uncheck.
範例:
CMainFrame::CMainFrame()
{
   m_bAutoMenuEnable  = FALSE;
}
...
void CMainFrame::OnTest()
{
CMenu* pMenu = GetMenu();
pMenu->EnableMenuItem(ID_FILE_OPEN, MF_DISABLED | MF_GRAYED);
}
...
//Have subMenuItem
void CMainFrame::OnTest2()
{
CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(1);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
//submenu->EnableMenuItem(ID_DEBUG_ASSIGNEXCELTOGRID, MF_BYCOMMAND |MF_ENABLED);

沒有留言:

AdSense for Search

Google
 

Adsense Content