【MFC】MFC 指定菜单的某一栏不可用

 

UINT EnableMenuItem( UINT nIDEnableItem, UINT 
nEnable );

返回值:
返回以前的状态(MF_DISABLED, MF_ENABLED, 
或MF_GRAYED),如果无效,则返回-1。

参数: 
nIDEnableItem 指定由nEnable决定的将要有效的菜单项。该参数既可以指定弹出菜单项,也可以指定标准菜单项。 

nEnable 指定了将要进行的动作。它可以是MF_DISABLED, MF_ENABLED,或MF_GRAYED与 
MF_BYCOMMAND或MF_BYPOSITION的组合。这些值通过位与操作进行组合。这些值有下列含义: 
·
MF_BYCOMMAND
指定参数给出已存在的菜单项的命令ID号。此为缺省值。 
·
MF_BYPOSITION
指定参数给出已存在菜单项的位置。第一项所在的位置是0。 
·
MF_DISABLED
使菜单项无效,以便它不能被选择,但不变灰。 
·
MF_ENABLED
使菜单项有效,以便它能够被选择,并可从变灰的状态中恢复出来。 
·
MF_GRAYED
使菜单项无效,以便它不能被选择并同时变灰。 

代码示例:

//判断是否启用设置菜单
    m_Menu.LoadMenu(IDR_MENU_MAIN_PANNEL);

    if (!(g_strLogin=="管理员"))
    {
        m_Menu.EnableMenuItem(ID_ProdData, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
    }    
    SetMenu(&m_Menu);

其中,

IDR_MENU_MAIN_PANNEL为整个菜单的ID

ID_ProdData为需要设置为不可用的栏ID

MF_BYCOMMAND | MF_DISABLED | MF_GRAYED为需要设置的属性

【MFC】MFC 指定菜单的某一栏不可用_第1张图片

你可能感兴趣的:(MFC学习总结)