getMenuStringA 函数 (winuser.h)

将指定菜单项的文本字符串复制到指定的缓冲区中。

注意GetMenuString 函数已被取代。 使用 GetMenuItemInfo 函数检索菜单项文本。
 

语法

int GetMenuStringA(
  [in]            HMENU hMenu,
  [in]            UINT  uIDItem,
  [out, optional] LPSTR lpString,
  [in]            int   cchMax,
  [in]            UINT  flags
);

参数

[in] hMenu

类型: HMENU

菜单的句柄。

[in] uIDItem

类型: UINT

要更改的菜单项,由 uFlag 参数确定。

[out, optional] lpString

类型: LPTSTR

接收以 null 结尾的字符串的缓冲区。 如果字符串的长度或长度与 lpString 相同,则字符串将被截断,并添加终止 null 字符。 如果 lpStringNULL,则该函数返回菜单字符串的长度。

[in] cchMax

类型: int

要复制的字符串的最大长度(以字符为单位)。 如果字符串的长度超过 nMaxCount 参数中指定的最大值,则会截断额外的字符。 如果 nMaxCount 为 0,则函数返回菜单字符串的长度。

[in] flags

类型: UINT

指示如何解释 uIDItem 参数。 此参数须为下列值之一。

含义
MF_BYCOMMAND
0x00000000L
指示 uIDItem 提供菜单项的标识符。 如果 MF_BYCOMMANDMF_BYPOSITION 标志均未指定, 则MF_BYCOMMAND 标志为默认标志。
MF_BYPOSITION
0x00000400L
指示 uIDItem 提供菜单项的从零开始的相对位置。

返回值

类型: int

如果函数成功,则返回值将指定复制到缓冲区的字符数,不包括终止 null 字符。

如果函数失败,则返回值为零。

如果指定的项不是 MIIM_STRINGMFT_STRING 类型,则返回值为零。

注解

nMaxCount 参数必须大于文本字符串中字符数的 1,才能容纳终止 null 字符。

如果 nMaxCount 为 0,则函数返回菜单字符串的长度。

安全警告

lpString 参数是 TCHAR 缓冲区,nMaxCount 是菜单字符串的长度(以字符为单位)。 错误地调整这些参数的大小可能会导致字符串被截断,从而导致数据丢失。

示例

有关示例,请参阅 创建用户可编辑加速器

注意

winuser.h 标头将 GetMenuString 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-menu-l1-1-3 (在 Windows 10 版本 10.0.14393 中引入)

请参阅

概念性

GetMenuItemID

菜单

引用