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