Активизация контекстного меню




Чтобы отобразить контекстное меню на экране нужно вызвать метод PopUpMenu формы. Для этого укажите в программе сначала имя формы, в которой должно появиться контекстное меню, затем, через точку, название метода – PopUpMenu, и в качестве параметра передайте имя элемента управления контекстного меню.

Синтаксис метода PopUpMenu имеет вид:

object. PopupMenu menuname, flags, x, y, boldcommand

object – необязательный параметр. Имя объекта, содержащего меню. Если параметр пропущен, то используется имя текущей формы.

menuname – обязательный параметр. Имя всплывающего меню. Отображаемое меню должно содержать хотя бы один подпункт.

flags – необязательный параметр. Сумма констант, определяющих положение и поведение контекстного меню. Значения констант, которые можно использовать для этого параметра, приведены в таблице.

Константа Значение Описание
VbPopupMenuLeftAlign 0 (по умолчанию) левый край контекстного меню расположен в позиции х
VbPopupMenuCenterAlign 4 центр всплывающего меню расположен в позиции х
VbPopupMenuRightAlign 8 правый край всплывающего меню расположен в позиции х
VbPopupMenuLeftButton 0 (по умолчанию) пункт всплывающего меню реагирует только на нажатие левой кнопки мыши
VbPopupMenuRightButton 2 пункт всплывающего меню реагирует только на нажатие левой и правой кнопки мыши

x, y – необязательный параметр. Координаты контекстного меню. Если параметры пропущены, то используются координаты указателя

boldcommand – необязательный параметр. Имя пункта меню, выделенного жирным шрифтом. Если параметр пропущен, то для всех пунктов контекстного меню используются обычный шрифт

Хотя контекстное меню можно вызвать практически из любого места программы, чаще всего активизация его происходит в процедуре обработки события MouseUp для правой кнопки мыши.

Синтаксис процедуры обработки события нажатия кнопки мыши MouseUp имеет вид:

Private Sub object _ MouseDown (button As Integer, shift As Integer, x As Single, y As Single)

оbject – имя объекта, в котором возникает событие

button – передаёт в процедуру целое число, соответствующее нажатым кнопкам мыши:

vbLeftButton = 1 (левая), vbRightButton = 2 (правая), vbMiddleButton = 4 (центральная)

shift – передаёт в процедуру целое число, соответствующее нажатым клавишам на клавиатуре:

vbShiftMask = 1 (Shift), vbCtrlMask = 2 (Ctrl), vbAltMask = 4 (Alt)

x, y – передаёт в процедуру текущие координаты указателя.

Вы можете создать в своей программе произвольное количество контекстных меню и отображать их после щелчка правой кнопкой мыши на различных областях формы - чтобы определить, в каком месте находится указатель мыши, используются параметры х и у процедуры обработки события MouseUp.

Ниже приведён фрагмент кода, отображающего контекстное меню mnuFormat надписи lbl при нажатии правой кнопки мыши, которое содержит три пункта (mnuBold, mnuItalic, mnuUndeline), отображает с помощью флажков и позволяет изменять параметры форматирования текста надписи.

Private Sub lbl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = vbRightButton Then 'если пользователь отпустил правую клавишу мыши

PopupMenu mnuFormat 'отображение контекстного меню

End If

End Sub

Private Sub mnuBold_Click()

lbl.FontBold = Not lbl.FontBold 'изменение толщины символов

mnuBold.Checked = Not mnuBold.Checked 'изменение флажка возле пункта меню

End Sub

Private Sub mnuItalic_Click()

lbl.FontItalic = Not lbl.FontItalic 'изменение наклона символов

mnuItalic.Checked = Not mnuItalic.Checked 'изменение флажка возле пункта меню

End Sub

Private Sub mnuUndeline_Click()

lbl.FontUnderline = Not lbl.FontUnderline 'изменение подчёркивания текста

mnuUndeline.Checked = Not mnuUndeline.Checked

End Sub

В тексте приведённого фрагмента кода, событие MouseUp используется для определения факта нажатия кнопки мыши. При возникновении этого события процедуре обработки передаются несколько дополнительных параметров. Один из них – параметр Button, в котором хранится информация о том, какая из кнопок мыши была нажата. Поскольку нам нужно, чтобы контекстное меню появилось только после щелчка правой кнопкой мыши. в программе проверяется значение параметра Button. Если он равен vbRightButton (это внутренняя константа Visual Basic, определяющая правую кнопку мыши), вызывается метод PopUpMenu для формы и ему передастся параметр mnuFormat. В результате на экране отобразится меню Format.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: