天天看點

MFC菜單設計錯誤

在MFC中對菜單項進行控制,包括勾選、使其不可用等,經常用到語句為:

GetMenu()->GetSubMenu(0)->EnableMenuItem(0,MF_BYPOSITION|MF_DISABLED|MF_GRAYED);
GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION|MF_CHECKED);      

此時經常出現錯誤,此時需要将m_wndMenuBar出現的地方全部屏蔽掉。

發現未屏蔽前,所有菜單前是有圖示的,屏蔽後,圖示消失。

估計,使用上述語句調用時,與建立圖示語句産生沖突,故産生了如此錯誤。

另外注意,如果讓某個本來可以使用的菜單,暫時不可用還需要使用

m_bAutoMenuEnable =FALSE;