iCAx开思工具箱

标题: Solidworks宏怎么建立弹出菜单 [打印本页]

作者: api163    时间: 2015-2-7 09:26
标题: Solidworks宏怎么建立弹出菜单
我用下面代码

   
    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
Sub main()

    Dim swApp As SldWorks.SldWorks
    Dim swModelDoc As SldWorks.ModelDoc2
    Dim swFrame As SldWorks.Frame
   
    Set swApp = Application.SldWorks


    hMenu = CreatePopupMenu()
    'Append a few menu items
    AppendMenu hMenu, MF_STRING, ByVal 0&, "Hello !"
    AppendMenu hMenu, MF_GRAYED Or MF_DISABLED, ByVal 0&, "Testing ..."
    AppendMenu hMenu, MF_SEPARATOR, ByVal 0&, ByVal 0&
    AppendMenu hMenu, MF_CHECKED, ByVal 0&, "TrackPopupMenu"

    Dim Pt As POINTAPI
    'Get the position of the mouse cursor
    GetCursorPos Pt
    Set swFrame = swApp.Frame
    Dim i As Integer
    i = TrackPopupMenu(hMenu, TPM_LEFTALIGN, Pt.x, Pt.y, 0, swFrame.GetHWnd, ByVal 0&)
    MsgBox i
    DestroyMenu hMenu
End Sub
运行时,结果如下
javascript:;




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3