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_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 [デスクトップ アプリのみ]
対象プラットフォーム 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

メニュー

参照