教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> VB >> 控件集锦 >> ListView和TreeView的HitTest控制妙用 RSS订阅
ListView和TreeView的HitTest控制妙用
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
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 "Mailtvbeden@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----编译运行,看看是不是不同的项对应不同的提示。

来源:十度教育
作者:
关键字:ListView,TreeView
发表日期:2006-6-2 11:57:15

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:快速从文本文件装入文本到 ListBox   下一篇:防止文本控件中的部分滚动


2008-11-23 21:05:18
本文的相类似文章
  • TListView在XP中的补丁程序
  • VB 更改LISTVIEW的背景色
  • 添加一个栏目类别到VB的ListView中
  • 模拟TreeView控件的HoverSelection属性
  • 在VB6中将XML传入一个TreeView控件
  • VB6.0设计真正实用的TreeView控件
  • 用API函数改进ListView控件的显示效果
  • Treeview 控件的使用方法
  • ListView控件特效
  • 给TreeView控件添加节点一例
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com