共用方式為


GetMenuStringW 函式 (winuser.h)

將指定功能表項的文字字串複製到指定的緩衝區。

附注 已取代 getMenuString 函式 。 使用 GetMenuItemInfo 函式來擷取功能表項文字。
 

語法

int GetMenuStringW(
  [in]            HMENU  hMenu,
  [in]            UINT   uIDItem,
  [out, optional] LPWSTR 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 參數必須大於文字字串中的字元數,以容納終止的 Null 字元。

如果 nMaxCount 為 0,函式會傳回功能表字串的長度。

安全性警告

lpString 參數是 TCHAR 緩衝區,而 nMaxCount 是字元的功能表字串長度。 調整這些參數的大小不正確可能會導致字串截斷,導致數據可能遺失。

例子

如需範例,請參閱 建立使用者可編輯加速器

注意

winuser.h 標頭會將 GetMenuString 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winuser.h (包括 Windows.h)
連結庫 User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-menu-l1-1-3 (在 Windows 10 版本 10.0.14393 中引進)

另請參閱

概念

GetMenuItemID

功能表

參考