<Return[I]><Top>

InsertMenu

Declare Function Api_InsertMenu& Lib "user32" Alias "InsertMenuA" (ByVal hMenu&, ByVal uPosition&, ByVal uFlags&, ByVal uIDNewItem&, ByVal lpNewItem$)

Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Long, ByVal uPosition As Long, ByVal uFlags As Long, ByVal uIDNewItem As Long, ByVal lpNewItem  As String) As Long

指定されたメニューに新しいメニュー項目を挿入し、他のメニュー項目を下へ移動する。

InsertMenu 関数は InsertMenuItem 関数に取って代わられたが、InsertMenuItem の拡張機能が必要ない場合は、引き続き

InsertMenu を使うこともできる。

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

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

    m2 のメニュー項目を指定する。uFlags パラメータの値に基づいて、直前のメニュー項目の識別子またはメニューバー内での相対位置(オ

    フセット)を指定する。
uFlags
    uPosition パラメータの意味と、新しいメニュー項目の内容、外観(表示方法)、動作を指定する。

    このパラメータでは、uPosition パラメータの意味を指定する次の 2 つのフラグのいずれかと、「解説」で示す他のフラグのいずれかを指定し

    なければならない。

    値                             

説明                                                                                                                                         

    MF_BYCOMMAND

 

uPosition パラメータは直後のメニュー項目の識別子を意味する。MF_BYCOMMAND と MF_BYPOSITION の

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

    MF_BYPOSITION

 

 

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

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

ラメータで -1 を指定すると、新しいメニュー項目はメニューの最後へ追加される。

uIDNewItem
    新しいメニュー項目の識別子を指定する。

    uFlags パラメータで MF_POPUP フラグを指定した場合は、uIDNewItem パラメータで、新しいメニュー項目に対応するドロップダウンメニュ

    ーまたはサブメニューのハンドルを指定する。
lpNewItem
    新しいメニュー項目の内容を指定する。

    uFlags パラメータで、MF_BITMAP、MF_OWNERDRAW、MF_STRING のどのフラグが指定されているかに応じて、lpNewItem パラ

    メータの意味が異なる。

    値                             

説明                                                                                                                                         

    MF_BITMAP

lpNewItem パラメータは、ビットマップのハンドルを保持している。

    MF_OWNERDRAW

 

 

 

lpNewItem パラメータは、新しいメニュー項目に関係する追加のデータを維持するために使われる、アプリケーショ

ン定義の値を保持している。新しいメニュー項目を作成した際、またはそのメニュー項目の外観を更新した際に

WM_MEASUREITEM または WM_DRAWITEM メッセージが送信されるが、そのメッセージの lparam パラメー

タが指す構造体の itemData メンバに、この値が格納される。

    MF_STRING

lpNewItem パラメータは、NULL で終わる文字列へのポインタを保持している(既定)。


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