CMenu::AppendMenu
メニューの最後に新しい項目を追加します。
BOOL AppendMenu(
UINT nFlags,
UINT_PTR nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL
);
BOOL AppendMenu(
UINT nFlags,
UINT_PTR nIDNewItem,
const CBitmap* pBmp
);
パラメーター
nFlags
メニューに追加するときの、新しいメニュー項目の状態についての情報を指定します。 「解説」に示す値を 1 つ以上指定します。nIDNewItem
新しいメニュー項目のコマンド ID を指定します。nFlags の設定が MF_POPUP になっているときは、ポップアップ メニューのメニュー ハンドル (HMENU) を指定します。 nFlags が MF_SEPARATOR に設定されているときは、パラメーター nIDNewItem は無視されます (必要ありません)。lpszNewItem
新しいメニュー項目の内容を指定します。 nFlags の設定に従って、lpszNewItem は、次のように解釈されます。nFlags
lpszNewItem の解釈
MF_OWNERDRAW
アプリケーション提供の 32 ビットの値を保持します。この値は、アプリケーションがそのメニュー項目に割り当てる付加的なデータを管理するために使います。 この 32 ビットの値は、アプリケーションが WM_MEASUREITEM メッセージと WM_DRAWITEM メッセージを処理するときに使われます。 この値は、これらのメッセージで提供される構造体の itemData メンバーに格納されます。
MF_STRING
NULL で終わる文字列へのポインターを保持します。 これは既定です。
MF_SEPARATOR
パラメーター lpszNewItem は無視されます (必要ありません)。
pBmp
メニュー項目として使用される CBitmap オブジェクトへのポインター。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
nFlags に値を設定することにより、アプリケーションのメニュー項目の状態を指定できます。 nIDNewItem がポップアップ メニューを示しているときは、そのポップ アップ メニューは、追加されるメニューの一部になります。 該当のメニューが破棄されたときは、追加されたメニューも破棄されます。 追加されたメニューは、矛盾が起きないように CMenu オブジェクトから切り離します。 MF_STRING と MF_OWNERDRAW は、AppendMenu のビットマップ バージョンでは有効ではないことに注意してください。
nFlags に設定できる値の一覧を示します。
MF_CHECKED MF_UNCHECKED とトグルで動作します。既定のチェック マークを項目の隣に付けます。 アプリケーションがチェック マークのビットマップを用意しているときは (「CMenu::SetMenuItemBitmaps」を参照)、その "チェック マーク付き" のビットマップが表示されます。
MF_UNCHECKED MF_CHECKED とトグルで動作します。項目の隣からチェック マークを削除します。 アプリケーションがチェック マークのビットマップを用意しているときは (「SetMenuItemBitmaps」を参照)、その "チェック マークなし" のビットマップが表示されます。
MF_DISABLED メニュー項目を選択できないようにしますが、淡色表示にはしません。
MF_ENABLED メニュー項目を選択できるようにして、淡色表示から元の表示に戻します。
MF_GRAYED メニュー項目を選択できないようにして、淡色表示にします。
MF_MENUBARBREAK スタティック メニューの新しい行、またはポップアップ メニューの新しい桁位置に項目を置きます。 ポップアップ メニューの新しい桁位置と古い桁位置を縦線で分けます。
MF_MENUBREAK スタティック メニューの新しい行、またはポップアップ メニューの新しい桁位置に項目を置きます。 桁位置の間には分割線は描かれません。
MF_OWNERDRAW 項目がオーナー描画項目であることを指定します。 メニューが最初に表示されるとき、そのメニューを所有するウィンドウは、メニュー項目の高さと幅を取得するために、WM_MEASUREITEM メッセージを受け取ります。 その後、そのメニュー項目の表示を更新しなければならなくなるたびに、WM_DRAWITEM メッセージを受け取ります。 このオプションはトップレベル メニュー項目では有効ではありません。
MF_POPUP メニュー項目が、関連するポップアップ メニューを持つことを示します。 パラメーターの ID には、その項目に関連するポップアップ メニューのハンドルを指定します。 これは、トップレベルのポップアップ メニューか階層化されたポップアップ メニューのいずれかをポップアップ メニュー項目に追加するために使われます。
MF_SEPARATOR 水平の区切り線を描画します。 ポップアップ メニューのみで使用できます。 この線を淡色表示、使用禁止、または強調表示にすることはできません。 ほかのパラメーターは無視されます。
MF_STRING メニュー項目が文字列であることを示します。
次のフラグの組み合わせは、互いに排他的で同時に使うことはできません。
MF_DISABLED、MF_ENABLED、および MF_GRAYED
MF_STRING、MF_OWNERDRAW、MF_SEPARATOR とビットマップ バージョン
MF_MENUBARBREAK と MF_MENUBREAK
MF_CHECKED と MF_UNCHECKED
ウィンドウのメニューが更新されたときは (ウィンドウが表示されているかどうかにかかわらず)、アプリケーションは CWnd::DrawMenuBar 関数を必ず呼び出します。
使用例
「CMenu::CreateMenu」の例を参照してください。
必要条件
**ヘッダー:**afxwin.h