Shell_MergeMenus 函数 (shlobj_core.h)

[Shell_MergeMenus 可用于“要求”部分中指定的操作系统。 它在后续版本中可能已更改或不可用。]

合并两个菜单。

语法

UINT Shell_MergeMenus(
  [in] HMENU hmDst,
  [in] HMENU hmSrc,
       UINT  uInsert,
       UINT  uIDAdjust,
       UINT  uIDAdjustMax,
       ULONG uFlags
);

参数

[in] hmDst

类型: HMENU

要向其添加 hmSrc 的目标菜单。

[in] hmSrc

类型: HMENU

添加到 hmDst 的源菜单。

uInsert

类型: UINT

hmDst 中的点,在该点之后插入 hmSrc 中的条目。

uIDAdjust

类型: UINT

此数字将添加到每个菜单的 ID 中,以提供调整后的 ID。 设置为 0 不进行调整。 uIDAdjust 的值通常是 hmDst 中的项数。 可以使用 GetMenuItemCount 获取此数字。

uIDAdjustMax

类型: UINT

要添加到菜单的最大调整 ID。 不会添加任何大于此值的调整 ID。 若要允许所有 ID,请将此参数设置为 0xFFFF。

uFlags

类型: ULONG

以下一个或多个标志。

MM_ADDSEPARATOR

在两个菜单中的项之间添加分隔符(如果尚不存在)。 如果要将 hmSrc 中的条目插入 hmDst 中间,则会在 hmSrc 材料上方和下方添加分隔符。

MM_DONTREMOVESEPS

请勿删除两个菜单中的任何现有分隔符。 请注意,这可能会导致一行中出现两个分隔符。

MM_SUBMENUSHAVEIDS

如果子菜单具有应调整的 ID,请设置此标志。

返回值

类型: UINT

返回菜单末尾的下一个打开 ID, (调整后的最大 ID + 1) 。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shlobj_core.h (包括 Shlobj.h)
Library Shell32.lib
DLL Shell32.dll (6.0 或更高版本)
API 集 ext-ms-win-shell-shell32-l1-2-1 (在 Windows 10 版本 10.0.10240 中引入)