<Return[I]><Top>

InsertMenuItem

Declare Function Api_InsertMenuItem& Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu&, ByVal uItem&, ByVal fByPosition&, lpmii&)

Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPosition As Long, lpmii As Long) As Long

メニュー内の指定された位置に、新しいメニュー項目を挿入する。

パラメータ
hMenu
    新しいメニュー項目の挿入先のメニューのハンドルを指定する。
uItem
    挿入するべきメニュー項目の直後に位置するメニュー項目の識別子または位置を指定する。

    たとえば、既存のメニューに 3 つのメニュー項目 m1、m2、m3 があり、新しいメニュー項目 m0 を m1 と m2 の間に挿入したい場合、

    m2 のメニュー項目を指定する。fByPosition パラメータの値に基づいて、uItem パラメータの意味が異なる。
fByPosition
    uItem パラメータの意味を指定する。FALSE(0)を指定すると、uItem パラメータはメニュー項目の識別子を意味する。

    それ以外の値を指定すると、uItem パラメータはメニュー項目の位置を意味する。
lpmii
    新しいメニュー項目に関する情報を保持している、1 個の MENUITEMINFO 構造体へのポインタを指定する。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    メニューを変更した場合、そのメニューに関連するウィンドウが現在表示中かどうかにかかわりなく、必ず DrawMenuBar 関数を呼び出す。
    ビットマップまたは所有者側が描画するメニュー項目に対して、キーボードアクセラレータ(ショートカットキー)を機能させるには、メニューの

    所有側はメッセージを処理しなければならない。