getMenuStringA 函数 (winuser.h)
将指定菜单项的文本字符串复制到指定的缓冲区中。
语法
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 字符。 如果 lpString 为 NULL,则该函数返回菜单字符串的长度。
[in] cchMax
类型: int
要复制的字符串的最大长度(以字符为单位)。 如果字符串的长度超过 nMaxCount 参数中指定的最大值,则会截断额外的字符。 如果 nMaxCount 为 0,则函数返回菜单字符串的长度。
[in] flags
类型: UINT
指示如何解释 uIDItem 参数。 此参数须为下列值之一。
值 | 含义 |
---|---|
|
指示 uIDItem 提供菜单项的标识符。 如果 MF_BYCOMMAND 和 MF_BYPOSITION 标志均未指定, 则MF_BYCOMMAND 标志为默认标志。 |
|
指示 uIDItem 提供菜单项的从零开始的相对位置。 |
返回值
类型: int
如果函数成功,则返回值将指定复制到缓冲区的字符数,不包括终止 null 字符。
如果函数失败,则返回值为零。
如果指定的项不是 MIIM_STRING 或 MFT_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 中引入) |
请参阅
概念性
引用