如何正确使用TreeView的HitTest方法?
2011-04-29 10:36
696 查看
Q:如何正确使用TreeView的HitTest方法?
A:在TreeView控件
中有一个非常有用的方法HitTest,其功能
是返回指定坐标的节点对象
。其语法如下:
object.HitTest(x As Single, y As Single)
其中x和y代表坐标点,但必须要注意的是这里的x和y表示的是单位缇。任何数值
必须转换为相应的缇才能正确得到HitTest的返回结果
。
参考以下示例。本例中利用MouseMove事件和HitTest方法,返回当前鼠标所指向的节点的显示文本
。代码如下:
[Excel VBA] 如何正确使用TreeView的HitTest方法? http://www.exceltip.net/thread-20089-1-1-11314.html
A:在TreeView控件
中有一个非常有用的方法HitTest,其功能
是返回指定坐标的节点对象
。其语法如下:
object.HitTest(x As Single, y As Single)
其中x和y代表坐标点,但必须要注意的是这里的x和y表示的是单位缇。任何数值
必须转换为相应的缇才能正确得到HitTest的返回结果
。
参考以下示例。本例中利用MouseMove事件和HitTest方法,返回当前鼠标所指向的节点的显示文本
。代码如下:
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nindex As Long) As Long Private PixX2TwipX As Double '像素转换成缇 Private PixX2TwipY As Double Private Const LOGPIXELSX = 88 Private Const LOGPIXELSY = 90 Private Sub TreeView1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS) If Not TreeView1.HitTest(x * PixX2TwipX, y * PixX2TwipY) Is Nothing Then Label1.Caption = TreeView1.HitTest(x * PixX2TwipX, y * PixX2TwipY).Text End Sub ''初始化窗体 Private Sub UserForm_Initialize() Dim Dep1 As Node Dim Dep2 As Node Dim i As Long Dim Arr On Error Resume Next Arr = Range("A2:C" & Range("A65536").End(xlUp).Row) With TreeView1 For i = 1 To UBound(Arr) Set Dep1 = .Nodes(Arr(i, 2)) If Err.Number <> 0 Then Err.Clear Set Dep1 = .Nodes.Add(Key:=Arr(i, 2), Text:=Arr(i, 2)) End If Set Dep2 = .Nodes(Arr(i, 3)) If Err.Number <> 0 Then Err.Clear Set Dep2 = .Nodes.Add(relative:=Dep1, relationship:=tvwChild, Key:=Arr(i, 3), Text:=Arr(i, 3)) End If .Nodes.Add relative:=Dep2, relationship:=tvwChild, Key:=i & Arr(i, 1), Text:=Arr(i, 1) Next Set Dep1 = .Nodes("人事") End With PixX2TwipX = Application.InchesToPoints(1) * 20 / GetDeviceCaps(GetDC(0), LOGPIXELSX) PixX2TwipY = Application.InchesToPoints(1) * 20 / GetDeviceCaps(GetDC(0), LOGPIXELSY) End Sub
[Excel VBA] 如何正确使用TreeView的HitTest方法? http://www.exceltip.net/thread-20089-1-1-11314.html
相关文章推荐
- 如何正确的使用Timer的schedule()方法?
- 使用ViewModel模式来简化WPF的TreeView(用正确的方法使用TreeView)(转)
- 解析如何正确使用SqlConnection的实现方法
- springMVC正确使用GET POST PUT和DELETE方法,如何传递参数
- 如何正确的使用Timer的schedule()方法?
- 如何正确使用控件的方法——使用“继承”思想的重要性
- 服务器的三大使用误区及如何正确使用方法
- 如何正确的使用Timer的schedule()方法?
- 如何正确的使用Timer的schedule()方法?
- 如何正确使用equals方法?
- 如何正确的使用Timer的schedule()方法?
- 如何正确使用List中的toArray()方法
- Java 中正确使用 hashCode 和 equals 方法
- 如何C#中实现在TreeView查找某一节点(两种方法)
- 如何使用vs.net生成方法的小技巧
- 程序员对谷歌、百度正确的使用方法
- 如何正确使用J-Link调试MCUXpresso项目
- python中子类调用父类方法几点细节(正确使用super)
- Vickate_多线程的小方法以及如何使用多线程解决同步请求图片的卡顿现象
- PS2正确使用方法