Disable/Enable 使用 3ds max sdk 的四元菜单项

Disable/Enable quad menu item using 3ds max sdk

我在四元菜单中添加了一个菜单项。如何禁用和启用此菜单?

IQuadMenuContext* pContext = (IQuadMenuContext*) GetCOREInterface()->GetMenuManager()->GetContext(kViewportQuad);
IMenu *pMenuInQuadMenu = NULL;
IQuadMenu *pQuadMenu = pContext->GetMenu(0);
pMenuInQuadMenu = pQuadMenu->GetMenu(0);

IMenuItem* pNewMenuItem = GetIMenuItem();
pNewMenuItem->SetActionItem( pAction );
pNewMenuItem->SetUseCustomTitle(true);
pNewMenuItem->SetTitle(L"Menu Item");
pMenuInQuadMenu->AddItem( pNewMenuItem,0 );

在您派生的 class ActionItem 中,您可以根据需要实现自己的 IsEnabled 方法。 例如:

class MenuActionItem : public ActionItem
{
    BOOL IsEnabled()
    {
        return ( some_condition ) ? true : false ;
    }
}

每次尝试打开四元菜单时都会调用此方法。因此,您可以在此处启用或禁用菜单项。