Шаг 862 - CMenu::TrackPopupMenu

BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL );

Возвращаемое значение
Отлично от нуля, если функция успешна, иначе 0.

Параметры
nFlags
Определяет флажок экранный позиция и флажок кнопки мыши. Флажок экранный позиция может быть один из следующего:

Флажок кнопки мыши может быть любой из следующего:

x
Определяет горизонтальную позицию в аппаратных координатах устройства меню. В зависимости от значения nFlags параметра, меню может быть выровненно по левой границе, выровнено по правому краю, или центрировано относительно этой позиции.
y
Определяет вертикальную позицию в аппаратных координатах устройства верхней части меню на экране.
pWnd
Идентифицирует окно, которое обладает меню. Это окно получает все WM_COMMAND сообщения от меню. В Windows версии 3.1 и позже, окнa не получают WM_COMMAND сообщения до TrackPopupMenu возврата. В Windows 3.0, окно получает WM_COMMAND сообщения прежде TrackPopupMenu возврата.
lpRect
Указатель на структуру RECT или объект CRect, который содержит аппаратные координаты устройства прямоугольника, внутри которого пользователь может нажимать без того, чтобы отклонить всплывающее меню. Если этот параметр NULL всплывающее меню отклонено, если пользователь нажимает снаружи меню. Это должно быть NULL для Windows 3.0.
Для Windows 3.1 и позже, Вы можете использовать следующие константы:

TPM_CENTERALIGN
TPM_LEFTALIGN
TPM_RIGHTALIGN

Замечания
Отображает плавающее всплывающее меню в определенном расположении и прослеживает выбор элементов в меню. Плавающее всплывающее меню может появляться где-нибудь на экране.

Пример

// Кодовый фрагмент показывает, как получить меню File из
// окна прикладной программы и отображать это как плавающее всплывающее меню
// когда правая кнопка мыши нажата в просмотре.
// CMyView - класс наследник CView.

void CMyView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	CView::OnRButtonDown(nFlags, point);

	CMenu* menu_bar = AfxGetMainWnd()->GetMenu();
	CMenu* file_menu = menu_bar->GetSubMenu(0);    
	ASSERT(file_menu);

	file_menu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, point.x, 
		point.y, this);
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 9.02.2002