Функция TrackPopupMenuEx показывает на экране контекстное меню в заданном месте и устанавливает подбор пунктов меню. Контекстное меню может появиться в любом месте экрана.
Синтаксис
BOOL TrackPopupMenuEx( HMENU hmenu, UINT fuFlags, int x, int y, HWND hwnd, LPTPMPARAMS lptpm ); |
Параметры
hmenu
[in] Дескриптор контекстного меню, которое показывается на экране. Этот дескриптор может быть получен путем вызова CreatePopupMenu, чтобы создать новое контекстное меню или путем вызова GetSubMenu, чтобы извлечь дескриптор подменю, связанный с существующим пунктом меню.fuFlags
[in] Определяет параметры функции.Используйте один из следующих флажков, чтобы определить, как функция установит контекстное меню по горизонтали.
Значение | Предназначение |
TPM_CENTERALIGN | Если этот флажок установлен, функция помещает контекстное меню по центру горизонтали, относительно координаты, определяемой параметром x. |
TPM_LEFTALIGN | Если этот флажок установлен, функция помещает контекстное меню так, чтобы его левая сторона была выровнена по координате, определяемой параметром x. |
TPM_RIGHTALIGN | Устанавливает контекстное меню так, чтобы правая сторона была выровнена по координате, определяемой параметром x. |
Используйте один из следующих флажков, чтобы определить, как функция установит контекстное меню по вертикали.
Значение | Предназначение |
TPM_BOTTOMALIGN | Если этот флажок установлен, функция располагает контекстное меню так, чтобы его нижняя сторона выровнялась по координате, заданной параметром y. |
TPM_TOPALIGN | Если этот флажок установлен, функция располагает контекстное меню так, чтобы его верхняя сторона выровнялась по координате, заданной параметром y. |
TPM_VCENTERALIGN | Если этот флажок установлен, функция выравнивает по центру вертикали контекстное меню, относительно координаты, заданной параметром y. |
Значение | Предназначение |
|
Если этот флажок установлен, функция не отправляет уведомительные сообщения, когда пользователь щелкает кнопкой мыши по пункту меню. |
|
Если этот флажок установлен, функция возвращает значение идентификатора пункта меню, выбранного пользователем. |
Значение | Предназначение |
TPM_LEFTBUTTON | Если этот флажок установлен, пользователь может выбрать пункт меню только левой кнопкой мыши. |
|
Если этот флажок установлен, пользователь может выбрать пункт меню и левой, и правой кнопкой мыши. |
Значение | Предназначение |
|
Анимирует меню справа налево. |
|
Анимирует меню слева направо. |
|
Показывает меню без анимации. |
|
Анимирует меню снизу вверх. |
|
Анимирует меню сверху вниз . |
Значение | Предназначение |
|
Если меню нельзя вывести на экран в заданном месте, не перекрывая исключенный прямоугольник, система пробует разместить затребованное горизонтальное выравнивание перед затребованным выравниванием по вертикали. |
|
Если меню нельзя вывести на экран в заданном месте, не перекрывая исключенный прямоугольник, система пробует разместить затребованное выравнивание по вертикали перед затребованным горизонтальным выравниванием. |
Исключенный прямоугольник - это часть экрана, которую меню не должно перекрывать; он определяется параметром lptpm.
x
[in] Определяет горизонтальное расположение контекстного меню, в экранной системе координат.y
[in] Определяет вертикальное расположение контекстного меню, в экранной системе координат.hwnd
[in] Дескриптор окна, которое владеет контекстным меню. Это окно принимает все сообщения от меню. Окно не получает сообщение WM_COMMAND от меню до тех пор, пока функция не возвратит значение. Если Вы устанавливаете в параметре fuFlags флажок TPM_NONOTIFY , функция не отправляет сообщения окну, идентифицированному hwnd. Тем не менее, Вы должны все же переправлять дескриптор окна в hwnd. Это может быть любой дескриптор окна вашей прикладной программы.lptpm
[in] Указатель на структуру TPMPARAMS, устанавливающую область экрана меню, которая не должна перекрыться. Этим параметром может быть значение ПУСТО (NULL).Возвращаемые значения
Если Вы в параметре fuFlags устанавливаете флажок TPM_RETURNCMD , возвращаемое значение - идентификатор пункта меню, который пользователь выбрал.
Если пользователь закрывает меню, не делая выбор, или если происходит ошибка, тогда величина возвращаемого значения - нуль.
Если Вы в параметре fuFlags не устанавливаете флажок TPM_RETURNCMD , величина возвращаемого значения - не нуль, если функция завершается успешно и нуль, если она завершается ошибкой. Чтобы получать дополнительные сведения об ошибке, вызовите GetLastError.
Замечания
Чтобы показать на экране контекстное меню для значка предупреждения, текущее окно должно быть приоритетным окном прежде, чем приложение вызовет функцию TrackPopupMenu или TrackPopupMenuEx. В противном случае, меню не будет исчезать, когда пользователь щелкает кнопкой мыши вне меню или вне окна, которое создавало меню (если оно видимо).
Смотри также
Краткий обзор Меню, CreatePopupMenu, GetSubMenu, TPMPARAMS, WM_COMMAND
Размещение и совместимость TrackPopupMenuEx |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 4.0 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |