印刷用ページ       送信     
クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Win32 および COM 開発
SDK ドキュメント
リソース
メニュー
リファレンス
関数
 InsertMenu 関数

  低帯域幅での表示をオンにする
プラットフォーム SDK
InsertMenu

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

注意  InsertMenu 関数は InsertMenuItem 関数に取って代わられましたが、InsertMenuItem の拡張機能が必要ない場合は、引き続き InsertMenu を使うこともできます。

BOOL InsertMenu(
  HMENU hMenu,          // メニューのハンドル
  UINT uPosition,       // 新しい項目の直前に位置する項目
  UINT uFlags,          // オプション
  UINT_PTR uIDNewItem,  // 識別子、メニュー、サブメニューのいずれか
  LPCTSTR lpNewItem     // メニュー項目の内容
);

パラメータ

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 パラメータは、新しいメニュー項目に関係する追加のデータを維持するために使われる、アプリケーション定義の値を保持しています。新しいメニュー項目を作成した際、またはそのメニュー項目の外観を更新した際に、 または メッセージが送信されますが、そのメッセージの lparam パラメータが指す構造体の itemData メンバに、この値が格納されます。
MF_STRING lpNewItem パラメータは、NULL で終わる文字列へのポインタを保持しています(既定)。

戻り値

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

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

解説

メニューを変更した場合、そのメニューに関連するウィンドウが現在表示中かどうかにかかわりなく、必ず DrawMenuBar 関数を呼び出してください。

次のリストは、パラメータで指定できるさまざまなフラグを示します。

説明
MF_BITMAP ビットマップをメニュー項目として使います。lpNewItem パラメータは、このビットマップのハンドルを保持しています。
MF_CHECKED メニュー項目の隣にチェックマークを表示します。アプリケーションがチェックマークを表すビットマップを提供している場合(SetMenuItemBitmaps 関数を参照)、このフラグを指定すると、メニューアイテムの隣にそのビットマップが表示されます。
MF_DISABLED メニュー項目を無効にします。そのため、そのメニュー項目は選択できませんが、淡色表示にはなりません。
MF_ENABLED メニュー項目を有効にします。そのメニュー項目は選択できますし、それまで淡色表示になっていた場合は、通常の表示へ戻ります。
MF_GRAYED メニュー項目を無効にし、淡色表示にします。そのため、そのメニュー項目は選択できません。
MF_MENUBARBREAK メニューバーに対してこのフラグを指定した場合、MF_MENUBREAK フラグと同じことを意味します。ドロップダウンメニュー、サブメニュー、ショートカットメニューのいずれかに対してこのフラグを指定した場合、新しい列と従来の列を垂直な線で区切ります。
MF_MENUBREAK メニューバーに対してこのフラグを指定した場合、新しい行にメニュー項目を表示します。ドロップダウンメニュー、サブメニュー、ショートカットメニューのいずれかに対してこのフラグを指定した場合、新しい列にメニュー項目を表示しますが、新しい列と従来の列を区切りません。
MF_OWNERDRAW このメニュー項目が、所有側が描く項目であることを指定します。最初にメニューを表示する前に、このメニューを所有しているウィンドウは メッセージを受信し、このメニュー項目の幅と高さを取得します。その後、このメニュー項目の外観を更新する必要が生じると、所有側ウィンドウのウィンドウプロシージャへ メッセージが送信されます。
MF_POPUP このメニュー項目がドロップダウンメニューまたはサブメニューを開くことを指定します。uIDNewItem パラメータは、そのドロップダウンメニューまたはサブメニューのハンドルを指定しています。メニューバーへ 1 つのメニュー名を追加する場合や、ドロップダウンメニュー、サブメニュー、ショートカットメニューのいずれかへ、サブメニューを開く 1 つのメニュー項目を追加する場合は、このフラグを使います。
MF_SEPARATOR 水平な分割線(区切り線)を描きます。ドロップダウンメニュー、サブメニュー、ショートカットメニューのいずれかでのみ、このフラグを使います。この分割線を淡色表示、無効、強調表示にすることはできません。lpNewItem uIDNewItem の各パラメータは無視されます。
MF_STRING メニュー項目が文字列であることを指定します。lpNewItem パラメータは、その文字列へのポインタを保持しています。
MF_UNCHECKED メニュー項目の隣にチェックマークを表示しません(既定)。アプリケーションがアンチェックマーク(hBitmapUnchecked パラメータで指定)を表すビットマップを提供している場合(SetMenuItemBitmaps 関数を参照)、このフラグを指定すると、メニューアイテムの隣にそのビットマップが表示されます。

次の各フラグはそれぞれ 1 つのグループを形成していて、各グループではどれか 1 つのフラグしか指定できません。

•MF_BYCOMMAND と MF_BYPOSITION

•MF_DISABLED、MF_ENABLED、MF_GRAYED

•MF_BITMAP、MF_STRING、MF_OWNERDRAW、MF_SEPARATOR

•MF_MENUBARBREAK と MF_MENUBREAK

•MF_CHECKED と MF_UNCHECKED

対応情報

Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h 内で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装

参照

AppendMenu, DeleteMenu, DrawMenuBar, InsertMenuItem, ModifyMenu, RemoveMenu, SetMenuItemBitmaps, ,

© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker