• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

ListView和TreeView的HitTest控制妙用

发布: 2007-6-21 21:57 | 作者:   | 来源:   | 查看: 39次 | 进入软件测试论坛讨论

领测软件测试网

   
  ListView和TreeView可以通过HitTest来实现对各项的控制,那么ListBox有没 有方法方法实现对其项的控制呢?答案上肯定的。
下面的例子实现的ListBox各项的自动选择,就象弹出ComboBox的下拉框,然后 移动鼠标时,光条跟着移动。

>>步骤1----建立新工程,在窗体上放置ListBox控件。
>>步骤2----编写如下代码:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Const LB_ITEMFROMPOINT = &H1A9

Private Sub Form_Load()
With List1
.AddItem "程序编制:VB编程乐园"
.AddItem "Mailto:vbeden@21cn.com"
.AddItem "Http://www.vbeden.com"
End With
End Sub

Private Sub List1_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)

Dim lXPoint As Long
Dim lYPoint As Long
Dim lIndex As Long
lXPoint = CLng(X / Screen.TwipsPerPixelX)
lYPoint = CLng(Y / Screen.TwipsPerPixelY)
With List1
lIndex = SendMessage(.hwnd, LB_ITEMFROMPOINT, 0, _
ByVal ((lYPoint * 65536) + lXPoint))
If (lIndex >= 0) And (lIndex <= .ListCount) Then
.Selected(lIndex) = True
Else
.Selected(lIndex) = False
End If
End With
End Sub

>>步骤3----编译运行,鼠标在ListBox上移动,看看是不是自动选择。

************************************************************************************

ListView控件和TreeView控件都提供了HitTest方法。这个方法返回对位于x和 y 坐标的 ListItem 对象或 Node 对象的引用。通常与拖放操作或鼠标移动操作一 起使用,来确定鼠标下的目标项在当前位置是否可用。
其语法为:
object.HitTest (x As Single, y As Single)
下面的例子实现ListView不同的项具有不同的ToolTipText。
>>步骤1----建立新工程,加入部件“Microsoft common controls 6.0(sp3)”。
>>步骤2----在工程上放置ListView控件。
>>步骤3----编写如下代码:

Private Sub Form_Load()
ListView1.ListItems.Add , , "程序编制:VB编程乐园"
ListView1.ListItems.Add , , "EMail:vbeden@21cn.com"
ListView1.ListItems.Add , , "Http://www.vbeden.com"
End Sub

Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim iItem As ListItem
Set iItem = ListView1.HitTest(x, y)
If iItem Is Nothing Then Exit Sub
ListView1.ToolTipText = iItem.Text
End Sub

>>步骤4----编译运行,看看是不是不同的项对应不同的提示。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网