CMenu::TrackPopupMenu
Отображает контекстное меню в заданном месте с меню и отслеживает выделение элементов во всплывающем меню.
BOOL TrackPopupMenu(
UINT nFlags,
int x,
int y,
CWnd* pWnd,
LPCRECT lpRect = 0
);
Параметры
nFlags
Указывает флаги экран- положения и мышь- положения. См. раздел TrackPopupMenu список доступных флагов.x
Задает горизонтальное положение в координатах экрана раскрывающегося меню. В зависимости от значения параметра nFlags, меню можно лев- выравнивания выравнивается по правому краю или центрировать относительно этой позиции.y
Определяет вертикальное положение в координатах экрана верхней части меню на экране.pWnd
Определяет всплывающее окно с меню. Этот параметр не может быть NULL, даже если пометить TPM_NONOTIFY определен. Это окно получает все сообщения WM_COMMAND из меню. В версиях Windows 3,1 и более поздних версий, окно не получает сообщения WM_COMMAND до тех пор, пока не будет возвращать TrackPopupMenu. В Windows 3.0, окно получает сообщения WM_COMMAND, прежде чем TrackPopupMenu.lpRect
Игнорируется.
Возвращаемое значение
Этот метод возвращает результат вызова TrackPopupMenu в Windows SDK.
Заметки
Контекстное меню меню плавающей запятой может находиться в любом месте экран.
Пример
// 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);
}
Требования
Header: afxwin.h