文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
文本框中光标位置的获得
用VB导入导出你的IE收藏夹
VB应用程序访问SQL Server方法探讨
VB访问SQL Server数据库技术全揭密
自动上网抓数据的机器人
自己的IE——用VB制作浏览器
VB中如何保存Webbrowser中的整个页面..
在VB中该如何控制其它程序的弹出窗口..
保存webbrowser中的HTML内容
破译动网验证码的简单方法
轻松获取QQ密码
VB.NET获取硬盘序列号的方法
WEBBROWSER 技巧一(收藏)
VB自动登陆网络站点详解(二):Inet..
获取webbrowser控件网页的源码
WebBrowser控件说明
关于用VB做更漂亮的窗体的思考
VB中访问存储过程的几种办法
VB6中改变屏幕的分辨率和刷新频率
VB编写一个能显示百分比的自定义进度..
公农历转换VB类
VB.NET窗口渐淡关闭
使用VB实现邮箱自动注册(二):修改..
VB.NET轻松实现任务栏程序
VB.NET启动外部程序
利用vb实现图片上传
VB实现局域网内的文件传输
VB 一个Function传回多个值
在VB中实现多线程
VB 手机号码编码程序


技术教程 -> VB教程 ->  
ListView和TreeView的HitTest控制妙用
来源:转载   人气:912   录入时间:2007-11-8
    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----编译运行,看看是不是不同的项对应不同的提示。
   




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987