庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>VB专区>控件集锦>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

ListView和TreeView的HitTest控制妙用

 作者:本站收集   日期:2005-8-4 11:23:11
字号选择〖 〗/ 双击滚屏 单击停止   
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----编译运行,看看是不是不同的项对应不同的提示。

上一篇:快速从文本文件装入文本到 ListBox    下一篇:防止文本控件中的部分滚动  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-8-4 11:23:11
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿