次の方法で共有


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 文字が追加されます。 lpString NULL場合、この関数はメニュー文字列の長さを返します。

[in] cchMax

型: int

コピーする文字列の最大長 (文字数)。 文字列が nMaxCount パラメーターで指定された最大値より長い場合、余分な文字は切り捨てられます。 nMaxCount 0 の場合、この関数はメニュー文字列の長さを返します。

[in] flags

型: UINT

uIDItem パラメーターの解釈方法を示します。 このパラメーターは、次のいずれかの値である必要があります。

価値 意味
MF_BYCOMMAND
0x00000000L
uIDItem メニュー項目の識別子を指定することを示します。 MF_BYCOMMAND フラグも MF_BYPOSITION フラグも指定されていない場合は、MF_BYCOMMAND フラグが既定のフラグになります。
MF_BYPOSITION
0x00000400L
uIDItem メニュー項目の 0 から始まる相対位置を指定することを示します。

戻り値

型: int

関数が成功した場合、戻り値はバッファーにコピーされる文字数を指定します。終端の null 文字は含まれません。

関数が失敗した場合、戻り値は 0 です。

指定した項目が MIIM_STRING または MFT_STRINGの型でない場合、戻り値は 0 になります。

備考

nMaxCount パラメーターは、終端の null 文字に対応するために、テキスト文字列内の文字数より 1 大きい必要があります。

nMaxCount 0 の場合、この関数はメニュー文字列の長さを返します。

セキュリティの警告

lpString パラメーターは TCHAR バッファーであり、nMaxCount はメニュー文字列の長さ (文字数) です。 これらのパラメーターのサイズを誤ると、文字列が切り捨てられ、データが失われる可能性があります。

例については、「ユーザー編集可能アクセラレータの作成」を参照してください。

手記

winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetMenuString を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント 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 の

メニューの

リファレンス