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