CSnapInItemImpl::UpdateMenuState

在插入到管理单元对象的上下文菜单之前,调用此函数修改菜单项。

void UpdateMenuState(
   UINT id,
   LPTSTR pBuf,
   UINT *flags 
);

参数

  • id
    [in]要设置的菜单项的ID。

  • pBuf
    [out]一个指向字符串的指针可以将更新的菜单项。

  • flags
    [in]用于指定新状态标志。它可以是以下标志的组合:

    • MF_POPUP 指定这是在上下文菜单中的子菜单。菜单项,插入点,并将子菜单可以添加到此子菜单使用其 lCommandID 作为其 IInsertionPointID

    • MF_BITMAPMF_OWNERDRAW 这些标志不允许并导致 E_INVALIDARG的返回值。

    • MF_SEPARATOR 绘制一条的分隔线。仅 IContextMenuProvider 允许添加与 MF_SEPARATOR 的菜单项设置。

    • MF_CHECKED 在菜单项旁放置一个复选标记。

    • MF_DISABLED 禁用菜单项,因此不能选择,但是,该标记不灰色它。

    • MF_ENABLED 启用菜单项,以便它可以选择,将其还原从其灰显的状态。

    • MF_GRAYED 禁用菜单项,这种它,因此不能选择。

    • MF_MENUBARBREAK 函数与菜单栏上的 MF_MENUBREAK 标志相同。对于下拉菜单上子菜单或快捷菜单,新列从旧列用竖线。

    • MF_MENUBREAK 将该项目在新行(对于菜单栏中)或新列(为一个下拉菜单上子菜单或快捷菜单),而无需分馏柱。

    • MF_UNCHECKED 不在项目(默认值)旁放置一个复选标记。

不能使用标志的以下组:

  • MF_DISABLEDMF_ENABLEDMF_GRAYED

  • MF_MENUBARBREAKMF_MENUBREAK

  • MF_CHECKEDMF_UNCHECKED

要求

Header: atlsnap.h

请参见

参考

CSnapInItemImpl选件类