用VB编写一个弹出菜单类
该类的名称是cPopupMenu
option Explicit
& acute;
私有类型点
x一样长
y一样长
结束类型
& acute;
私有常量MF_ENABLED = &H0&
私有常量MF_SEPARATOR = &H800&
私有常量MF_STRING = &H0&
私有常量TPM_RIGHTBUTTON = &H2&
私有常量TPM_LEFTALIGN = &H0&
私有常量TPM_NONOTIFY = &H80&
私有常量TPM _ return cmd = & H100 &[] ByVal wFlags为Long,ByVal x为Long,ByVal y为Long,ByVal nReserved为Long,ByVal hwnd为Long,nIgnored为Long)Long
私有声明函数destroy menu Lib " user 32 "(ByVal hMenu为Long)Long
私有声明函数GetCursorPos Lib " user 32 "(LP POINT为POINT)Long
私有声明函数GetForegroundWindow Lib " user 32 "()Long
私有声明函数GetMenuString ByVal wFlag As Long)
Long Private mSelMenuString As String
Public Property Get SelMenuString()As String
SelMenuString = mSelMenuString
End Property
& acute;
公共函数Popup(param array param())Long
Dim iMenu As Long
Dim hMenu As Long
Dim nmenu As POINT
&急性;获取当前光标在屏幕坐标中的位置
&急性;创建一个空的弹出菜单
hMenu = CreatePopupMenu()
&急性;确定param array
nMenus = 1+UBound(param)中的字符串数量
&急性;将iMenu = 1到nMenus
& acute;的每个字符串放在菜单
中AppendMenu函数已被insert menuitem
& acute;取代函数,但它更容易使用。
If Trim $(CStr(param(iMenu-1))= "-"那么
& acute;如果参数是单个破折号,则绘制分隔符
AppendMenu hMenu,MF_SEPARATOR,iMenu," "
Else
AppendMenu hme nu,MF_STRING + MF_ENABLED,iMenu,CStr(param(iMenu-1))
End If
Next iMenu
0条评论