拷贝下面的代码到一个Form运行即可:
Const MF_CHECKED = &H8&
Const MF_APPEND = &H100&
Const TPM_LEFTALIGN = &H0&
Const MF_DISABLED = &H2&
Const MF_GRAYED = &H1&
Const MF_SEPARATOR = &H800&
Const MF_STRING = &H0&
Private Type POINTAPI
    x As Long
    y As Long
End Type
Private Declare Function CreatePopupMenu Lib "user32" () As Long
Private Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, ByVal lprc As Any) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Dim hMenu As Long
Private Sub Form_Load()
    
    hMenu = CreatePopupMenu()
    
    AppendMenu hMenu, MF_STRING, ByVal 0&, "Item 1"
    AppendMenu hMenu, MF_GRAYED Or MF_DISABLED, ByVal 0&, "Item 2(Disabled)"
    AppendMenu hMenu, MF_SEPARATOR, ByVal 0&, ByVal 0&
    AppendMenu hMenu, MF_CHECKED, ByVal 0&, "Item 3(Checked)"
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim Pt As POINTAPI
    
    GetCursorPos Pt
    If Button = 2 Then
        
        TrackPopupMenu hMenu, TPM_LEFTALIGN, Pt.x, Pt.y, 0, Me.hwnd, ByVal 0&
    End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
    
    DestroyMenu hMenu
End Sub

解决方案 »

  1.   

    Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
       If Button = 2 Then
          PopupMenu mnuFile
       End If
    End Sub
      

  2.   

    在菜单编辑器里建一个菜单FILE1,并且将其设为不可见.
    如果是在FORM中右键激活菜单的话
    Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
      If Button = 2 Then
         Form.PopupMenu File1
      End If
    End Sub
    在其他控件里不用说了不吧
      

  3.   

    hydnoahark(诺亚方舟) 有必要吗?