Функция TrackPopupMenuEx
Declare Function TrackPopupMenuEx Lib "user32" (ByVal hMenu As Long, ByVal fuFlags As Long, ByVal x As Long, ByVal y As Long, ByVal hwnd As Long, lptpm As TPMPARAMS) As Long
TrackPopupMenuEx выводит всплывающее меню в заданной точке
Возвращаемое значение
Если fuFlags содержит флаг TPM_RETURNCMD, то функция возвращает идентификатор выбранного пункта меню. Если ничего не выбрано или произошла ошибка, то возвращается 0.
Если fuFlags не содержит флаг TPM_RETURNCMD, то функция возвращает ненулевое значение в успешном случае. В случае ошибки возвращается 0
Параметры
- hMenu
- Дескриптор всплывающего меню
- fuFlags
- Комбинация флагов, определяющих позицию меню и другие возможности функции:
- TPM_CENTERALIGN = &H4
- Горизонтальная центровка меню относительно x
- TPM_LEFTALIGN = &H0
- Выравнивание по левому краю относительно x
- TPM_RIGHTALIGN = &H8
- Выравнивание по правому краю относительно x
- TPM_BOTTOMALIGN = &H20
- Выравнивание по нижнему краю относительно y
- TPM_TOPALIGN = &H0
- Выравнивание по верхнему краю отностительно y
- TPM_VCENTERALIGN = &H10
- Выравнивание по вертикали относительно y
- TPM_NONOTIFY = &H80
- Не посылать сообщение WM_COMMAND родительскому окну меню при выборе меню пользователем
- TPM_RETURNCMD = &H100
- TrackPopupMenuEx возвращает идентификатор пункта меню, выбранного пользователем
- TPM_LEFTBUTTON = &H0
- Выбор меню левой кнопкой (или клавиатурой)
- TPM_RIGHTBUTTON = &H2
- Выбор меню правой кнопкой (или клавиатурой)
- TPM_HORIZONTAL = &H0
- Если всплывающее меню не может быть показано в указанных координатах без перекрытия заданного прямоугольника, то меню сдвигается по вертикали, сохраняя горизонтальные координаты
- TPM_VERTICAL = &H40
- Если всплывающее меню не может быть показано в указанных координатах без перекрытия заданного прямоугольника, то меню сдвигается по горизонтали, сохраняя вертикальные координаты
- x
- Координата x, где выводится всплывающее меню относительно экрана
- y
- Координата y, где выводится всплывающее меню относительно экрана
- hwnd
- Дескриптор окна, которому принадлежит меню. Данное окно должно получать сообщение WM_COMMAND
- lptpm
- Указатель на структуру TPMPARAMS, задающую прямоугольник, который не должен закрываться в всплывающим меню
Пример
' Вызываем всплывающее меню
' при отпускании кнопки мыши
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim Pt As POINTAPI
Dim ret As Long
hMenu = CreatePopupMenu()
AppendMenu hMenu, MF_STRING, 1, "Русский_Проект"
AppendMenu hMenu, MF_GRAYED Or MF_DISABLED, 2, "Тест"
AppendMenu hMenu, MF_SEPARATOR, 3, ByVal 0&
AppendMenu hMenu, MF_CHECKED, 4, "Пример"
GetCursorPos Pt
ret = TrackPopupMenuEx(hMenu, TPM_LEFTALIGN Or TPM_RETURNCMD Or TPM_RIGHTBUTTON, Pt.x, Pt.y, Me.HWnd, ByVal 0&)
DestroyMenu hMenu
Debug.Print ret
End Sub
Смотри также
TrackPopupMenu
Категория
Меню