<Return[G]><Top>

GetMenuString

Declare Function Api_GetMenuString& Lib "user32" Alias "GetMenuStringA" (ByVal hMenu&, ByVal uIDItem&, ByVal lpString$, ByVal nMaxCount&, ByVal uFlag&)

Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long

指定されたメニュー項目のテキスト文字列を、指定されたバッファへコピーする。

この関数は、GetMenuItemInfo 関数に取って代わられた。メニュー項目のテキストを取得するには、GetMenuItemInfo 関数を使う。

パラメータ
hMenu
    1 つのメニューのハンドルを指定する。
uIDItem
    情報を取得するべきメニュー項目を指定する。uFlags パラメータの値に基づいて、識別子または位置を指定する。
lpString
    1 個のバッファへのポインタを指定する。関数から制御が返ると、このバッファに、NULL で終わる文字列が格納される。
    NULL を指定すると、この関数はメニュー項目の文字列の長さを返す。
nMaxCount
    コピー対象の文字列の最大の長さを指定する(終端の NULL を含む)。

    文字列の長さがこの最大値よりも長い場合は、余分な文字が切り捨てられる。
    0 を指定すると、この関数はメニュー項目の文字列の長さを返す。
uFlag
    uIDItem パラメータの意味を指定する。次の値のいずれかを指定する。

    値                             

意味                                                                                                                                                 

    MF_BYCOMMAND

uIDItem パラメータはメニュー項目の識別子を意味する。MF_BYCOMMAND と MF_BYPOSITION のどちらの

 

フラグも指定されていない場合、MF_BYCOMMAND フラグは既定のフラグとして扱われる。

    MF_BYPOSITION

uIDItem パラメータはメニュー項目の位置を意味する。この位置は、メニュー内でのメニュー項目の相対位置を、

 

0 ベースで指定したものである。たとえば、0 を指定すると、上端のメニュー項目を意味する。


戻り値
    関数が成功すると、バッファへコピーされた文字数が返る(終端の NULL を除く)。

    nMaxCount パラメータで 0 を指定すると、メニュー項目の文字数が返る(終端の NULL を含む)。
    関数が失敗すると、0 が返る。
    指定されたメニュー項目が MFT_STRING 型ではない場合、0 が返る。
    Windows 2000 と Windows 98:MIIM_STRING は、MFT_STRING にとって代わるものである。

解説
    nMaxCount パラメータでは、終端の NULL を含めるために、メニュー項目の文字列より 1 文字長い値を指定しなければならない。
    nMaxCount で 0 を指定すると、この関数はメニュー項目の文字列の長さを返す。