Шаг 571 - 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 и позже окно не получают 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
TPM_RIGHTBUTTON 

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

Пример

// Кодовый фрагмент показывает, как получить меню 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);
}

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