'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. |