home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD142681292001.psc / clsPopUpMenu.cls < prev    next >
Encoding:
Visual Basic class definition  |  2000-12-14  |  3.4 KB  |  109 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "cVBPopUpMenu"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Member0" ,"clsSubMenu"
  16. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  17. Option Explicit
  18.  
  19. Private mvarclsSubMenu As cVBSubMenu
  20. Private hPopupMenu As Long 'handle to the popup menu to display
  21. Private hPopupSubMenu As Long 'handle to the popup menu to display
  22. Private MenuInfo As MENUITEMINFO   'describes menu items to add
  23. Private SubMenuInfo As MENUITEMINFO   'describes menu items to add
  24. Private MenuCount As Long
  25. Private SubMenuCreated As Boolean
  26. Private SubMenuCount As Long
  27.  
  28. Dim menusel As Long       'ID of what the user selected in the popup menu
  29. Dim retval As Long        'generic return value
  30. Dim curpos As POINT_TYPE
  31.  
  32. Public Enum MenuTypeEnum
  33.     MFT_BITMAP = &H4
  34.     MFT_MENUBARBREAK = &H20
  35.     MFT_MENUBREAK = &H40
  36.     MFT_OWNERDRAW = &H100
  37.     MFT_RADIOCHECK = &H200
  38.     MFT_RIGHTJUSTIFY = &H4000
  39.     MFT_RIGHTORDER = &H2000
  40.     MFT_SEPARATOR = &H800
  41.     MFT_STRING = &H0
  42. End Enum
  43. Public Enum MenuStateEnum
  44.     MFS_CHECKED = &H8
  45.     MFS_DEFAULT = &H1000
  46.     MFS_DISABLED = &H2
  47.     MFS_ENABLED = &H0
  48.     MFS_GRAYED = &H1
  49.     MFS_HILITE = &H80
  50.     MFS_UNCHECKED = &H0
  51.     MFS_UNHILITE = &H0
  52. End Enum
  53.  
  54. Public Sub CreateMenuPopUp()
  55.     hPopupMenu = CreatePopupMenu()
  56.     With MenuInfo
  57.         .cbSize = Len(MenuInfo) 'The size of this structure.
  58.         .fMask = MIIM_STATE Or MIIM_ID Or MIIM_TYPE Or MIIM_SUBMENU  'Which elements of the structure to use.
  59.     End With
  60. End Sub
  61.  
  62. Public Sub AddMenu(ByVal MenuCaption As String, MenuType As MenuTypeEnum, MenuState As MenuStateEnum, MenuID As Long)
  63.     With MenuInfo '(SubMenu/teste)
  64.         .fType = MenuType
  65.         .fState = MenuState
  66.         .wID = MenuID 'Assign this item an item identifier.
  67.         .dwTypeData = MenuCaption
  68.         .cch = Len(MenuCaption)
  69.         .hSubMenu = 0
  70.     End With
  71.     retval = InsertMenuItem(hPopupMenu, MenuCount, 1, MenuInfo)
  72.     MenuCount = MenuCount + 1
  73. End Sub
  74.  
  75. Public Sub CreateSubMenu(ByVal MenuCaption As String, MenuType As MenuTypeEnum, MenuState As MenuStateEnum, MenuID As Long)
  76.     Set mvarclsSubMenu = New cVBSubMenu
  77.     With MenuInfo '(SubMenu/teste)
  78.         .fType = MenuType
  79.         .fState = MenuState
  80.         .wID = MenuID 'Assign this item an item identifier.
  81.         .dwTypeData = MenuCaption
  82.         .cch = Len(MenuCaption)
  83.         .hSubMenu = mvarclsSubMenu.SubMenuPopUp()
  84.     End With
  85.     retval = InsertMenuItem(hPopupMenu, MenuCount, 1, MenuInfo)
  86.     MenuCount = MenuCount + 1
  87. End Sub
  88.  
  89. Public Property Get SubMenu() As cVBSubMenu
  90.     Set SubMenu = mvarclsSubMenu
  91. End Property
  92.  
  93. Public Function ShowMenu(mHWND As Long) As Long
  94.     retval = GetCursorPos(curpos)
  95.     ShowMenu = TrackPopupMenu(hPopupMenu, _
  96.             TPM_TOPALIGN Or TPM_NONOTIFY _
  97.             Or TPM_RETURNCMD Or TPM_LEFTALIGN _
  98.             Or TPM_LEFTBUTTON Or TPM_RIGHTBUTTON, _
  99.             curpos.x, curpos.y, 0, mHWND, 0)
  100.  
  101. End Function
  102.  
  103. Public Sub MenuUnload()
  104.     retval = DestroyMenu(hPopupMenu)
  105. End Sub
  106.  
  107.  
  108.  
  109.