Поделиться через


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

См. также

Ссылки

Класс CMenu

Диаграмма иерархии

CMenu::CreatePopupMenu

CMenu::GetSubMenu

TrackPopupMenu