次の方法で共有


CMenu::TrackPopupMenu

フローティング ポップアップ メニューを指定の位置に表示し、ポップアップ メニュー項目の選択を追跡します。

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