ContextMenu




'Aggiungere il codice seguente al form o ad un modulo BAS:

Private Const WM_RBUTTONDOWN = &H204
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Public Sub OpenContextMenu(FormName As Form, MenuName As Menu)
'Click destro sull'MDI

Call SendMessage(FormName.hwnd, WM_RBUTTONDOWN, 0, 0&)
'Mostra il context menu

FormName.PopupMenu MenuName
End Sub

'Adesso, utilizzando l'Editor di menu di Visual Basic e la

'tavola sotto riportata creare un semplice menu.

'Caption Name Visible

'Context Menu mnuContext NO

'...First Item mnuContext1

'...Second Item mnuContext2


'Si noti che gli ultimi due item nel menu sono indentati

'(...) di un livello e che solo il primo item nella lista

'("Context Menu") ha la proprieta' Visible impostata a NO.

'Inserire adesso un text box nel form e digitare questo

'codice nell'evento MouseDown del text box:


Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
Call OpenContextMenu(Me, Me.mnuContext)
End If
End Sub

'Nota: Se si desidera solo eliminare il context menu di

'sistema, basta escludere la linea: FormName.PopupMenu MenuName

'nella routine OpenContextMenu.











( contextmenu.html )- by Paolo Puglisi - Modifica del 17/12/2023