AppendMenu(A)

メニュー末尾にメニューアイテムを追加します。

AppendMenu関数はInsertMenuItem関数に取って代わられましたが、まだ使用できます。

BOOL AppendMenuA(
    HMENU  hMenu,   // メニューハンドル
    UINT   uFlags,  // オプションフラグ
    UINT   uIDItem, // アイテムIDまたはサブメニューハンドル
    PCTSTR pItem    // 表示する文字列
);

USER32.DLL

引数

hMenu

ショートカットメニューのハンドルを指定します。CreateMenu関数またはCreatePopupMenu関数によって作成されたメニューを指定します。

uFlags

メニューアイテムのオプションを指定します。以下の値の組み合わせで指定します。

0x00000000 (MF_STRING, MF_ENABLED, MF_UNCHECKED)
デフォルト表示です。
0x00000003 (MFS_GLAYED, MFS_DISABLED)
アイテムを灰色で表示し、選択不可にします。
0x00000004 (MF_BITMAP)
アイテムとしてビットマップを使います。
0x00000008 (MFS_CHECKED)
アイテムにチェックマークをつけます。
0x00000010 (MF_POPUP)
ドロップダウンメニューまたはサブメニューを開くアイテムを追加します。
0x00000020 (MF_MENUBARBREAK)
メニューバーに対してはメニューアイテムを新しい行に配置します。ドロップダウンメニュー・サブメニュー・ショートカットメニューに対してはメニューアイテムを新しい列に配置します。ドロップダウンメニュー・サブメニュー・ショートカットメニューでは新しい列との間に線が引かれます。
0x00000040 (MF_MENUBREAK)
メニューバーに対してはメニューアイテムを新しい行に配置します。ドロップダウンメニュー・サブメニュー・ショートカットメニューに対してはメニューアイテムを新しい列に配置します。ドロップダウンメニュー・サブメニュー・ショートカットメニューでは新しい列との間には線が引かれません。
0x00000100 (MF_OWNERDRAW)
アイテムがオーナードローアイテムであると指定します。メニューが最初に表示される直前に、メニューを所有するウィンドウはWM_MEASUREITEMメッセージを受け取ります。その後、メニューアイテムの表示が更新されるたびに、WM_DRAWITEMメッセージがオーナーウィンドウに送信されます。
0x00000800 (MF_SEPARATOR)
セパレーター(区切り線)を表示します。
uIDItem

アイテムの ID を指定します。

uFlagsパラメータに0x00000010 (MF_POPUP) を指定した場合は、ドロップダウンメニューまたはサブメニューのハンドルを指定します。

pItem

メニューアイテムに表示する文字列のアドレスを指定します。

uFlagsパラメータに0x00000004 (MF_BITMAP) を指定した場合は表示するビットマップのハンドルを指定します。

uFlagsパラメータに0x00000100 (MF_OWNERDRAW) を指定した場合は、メニューアイテムに関する追加データを取得するために使用されるアプリケーション定義の値を指定します。この値は、メニューが作成・表示の更新の際に送られるWM_MEASUREITEMおよびWM_DRAWITEMメッセージのlParamパラメータが指す構造体のitemDataメンバの値です。

戻り値

成功すると0以外の値が返ります。

失敗すると0が返ります。拡張エラー情報を取得するには、GetLastError関数を使います。

解説

ウィンドウメニューを変更した場合は、メニューが表示されているかどうかに関わらず、DrawMenuBar関数を使ってメニューを再描画する必要があります。

対応情報

Windows 95 以降 / Windows NT 3.1 以降