前不久刚好做了相同的东西,是判断一点是是否在框内(即选中的节点mItem的Top Width Left Height等属性形成的方框)实现的
函数调用:
'********************************************************************************
'* 功能 描述:判断一点是否在框内
'* 参数 说明:
'* 输入:X,Y,Top,Left,Width,Height
'* 输出:None
'* 返回值说明:Boolean
'* 作 者:ajiu
'* 更 新:
'* 创建 日期:2003/8/6
'* 更新 日期:
'********************************************************************************
Public Function PointIsRectangle(ByVal X As Single, ByVal Y As Single, ByVal Top As Single, _
ByVal Left As Single, ByVal Width As Single, ByVal Height As Single) As Boolean
Dim bFlag As Boolean
bFlag = True
If X < Left Or X > Left + Width Then bFlag = False
If Y < Top Or Y > Top + Height Then bFlag = False
PointIsRectangle = bFlag
End Function
'调用
Private Sub lvwDetail_ItemClick(ByVal Item As MSComctlLib.ListItem)
Set mItem = Item
End Sub
Private Sub lvwDetail_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> vbRightButton Then GoTo ExitHandler
If mItem Is Nothing Then
Call DisplayMenu(0, mNode.Key) '显示增加菜单
Else
If PointIsRectangle(X, Y, mItem.Top, mItem.Left, mItem.Width, mItem.Height) Then
Call DisplayMenu(1, mNode.Key) '显示删除、修改菜单
Else
Call DisplayMenu(0, mNode.Key) '显示增加菜单
End If
End If
ExitHandler:
End Sub