CMenu::TrackPopupMenu
Wyświetla ruchomy wyskakującego menu w określonej lokalizacji i śledzi zaznaczenia elementów menu wyskakującego.
BOOL TrackPopupMenu(
UINT nFlags,
int x,
int y,
CWnd* pWnd,
LPCRECT lpRect = 0
);
Parametry
nFlags
Określa położenie ekranu i myszy pozycji flagi.Zobacz TrackPopupMenu listę dostępnych flag.x
Określa położenie poziome we współrzędnych ekranu z wyskakującego menu.W zależności od wartości nFlags parametr menu może być wyrównany do lewej, do prawej lub wyśrodkowany w tym położeniu.y
Określa położenie w pionie w układzie współrzędnych ekranu u góry menu na ekranie.pWnd
Identyfikuje okna, który jest właścicielem wyskakującego menu.Ten parametr nie może być NULL, nawet jeśli TPM_NONOTIFY określono flagę.Okno to odbiera wszystkie WM_COMMAND wiadomości z menu.W systemie Windows w wersji 3.1 lub nowszej, nie otrzyma się okna WM_COMMAND wiadomości aż do TrackPopupMenu zwraca.Windows 3.0 otrzyma okna WM_COMMAND wiadomości przed TrackPopupMenu zwraca.lpRect
Ignorowane.
Wartość zwracana
Ta metoda zwraca wynik wywołania TrackPopupMenu w Windows SDK.
Uwagi
Ruchomy wyskakującego menu można się gdziekolwiek na ekranie.
Przykład
// 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);
}
Wymagania
Nagłówek: afxwin.h