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


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