CMenu::LoadMenuIndirect 是 MFC 中 CMenu 类的一个公共方法,用于通过 MENUITEMTEMPLATE 结构加载动态创建的菜单。

以下是 CMenu::LoadMenuIndirect 的基本用法:
CMenu myMenu;

// 假设你有一个 MENUITEMTEMPLATE 结构数组
MENUITEMTEMPLATE menuTemplate[] =
{
    {
        0,  // 样式
        1,  // 标识符
        0,  // 项目字符串偏移量
    },
    // 添加更多的菜单项...
};

// 创建一个 HMENU 句柄,可以是通过 CreatePopupMenu() 创建的
HMENU hMenu = CreateMenu();

// 使用 LoadMenuIndirect 加载动态创建的菜单
myMenu.Attach(hMenu);
myMenu.LoadMenuIndirect(menuTemplate, nullptr);

在这个例子中,menuTemplate 是一个 MENUITEMTEMPLATE 结构数组,每个结构表示一个菜单项。通过指定样式、标识符和项目字符串偏移量等信息,可以动态创建菜单。最后,通过 LoadMenuIndirect 将这些菜单项加载到 CMenu 对象中。

请注意,在使用 LoadMenuIndirect 加载动态创建的菜单后,你可以使用 CMenu 对象进行进一步的操作,例如弹出菜单、获取子菜单等。




转载请注明出处:http://www.zyzy.cn/article/detail/18958/MFC/CMenu