次の方法で共有


CMenu::TrackPopupMenu

更新 : 2007 年 11 月

指定された位置にフローティング ポップアップ メニューを表示し、ポップアップ メニュー上の項目が選択できるようにします。

BOOL TrackPopupMenu(
   UINT nFlags,
   int x,
   int y,
   CWnd* pWnd,
   LPCRECT lpRect = 0
);

パラメータ

  • nFlags
    画面位置およびマウス位置のフラグを指定します。使用できるフラグの一覧については、「TrackPopupMenu」を参照してください。

  • x
    ポップアップ メニューの水平位置を画面座標で指定します。メニューが左側に揃えられるか、右側に揃えられるか、またはこの位置からを基準に中央に合わせられるかは、パラメータ nFlags の値に依存します。

  • y
    画面上でのメニューの上辺の垂直位置を画面座標で指定します。

  • pWnd
    ポップアップ メニューを所有するウィンドウを識別します。このパラメータには、TPM_NONOTIFY フラグが指定されている場合でも、NULL は指定できません。このウィンドウはメニューからのすべての WM_COMMAND メッセージを受け取ります。Windows Version 3.1 以降では、TrackPopupMenu から戻るまで WM_COMMAND メッセージを受け取りません。Windows 3.0 では TrackPopupMenu から戻る前に WM_COMMAND メッセージを受け取ります。

  • lpRect
    無視されます。

戻り値

このメソッドは、Windows SDK の TrackPopupMenu 呼び出しの結果を返します。

解説

フローティング ポップアップ メニューは画面上のどの位置にも表示できます。

使用例

// The code fragment shows how to get the File menu from the
// application window and displays it as a floating popup menu
// when the right mouse button is clicked in view.
// CMdiView is a CView-derived class.
void CMdiView::OnRButtonDown(UINT nFlags, CPoint point)
{
   CView::OnRButtonDown(nFlags, point);

   CMenu* menu_bar = AfxGetMainWnd()->GetMenu();
   CMenu* file_menu = menu_bar->GetSubMenu(0);    
   ASSERT(file_menu);

   ClientToScreen(&point);
   file_menu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, point.x, 
      point.y, this);
}

必要条件

ヘッダー : afxwin.h

参照

参照

CMenu クラス

階層図

CMenu::CreatePopupMenu

CMenu::GetSubMenu

TrackPopupMenu

その他の技術情報

CMenu のメンバ