|
有一个WinTreeView的对象,可以实现对各子节点的操作,现在在各子节点前加了一个眼睛,笔,分别控制图层的可见和可编辑状态,就像在photoshop中对图层控制一样的功能,且各个图层的相对位置随机可变。QTP捕获不到对这两个的操作,对象也抓不出来,请问各位达人有没有好的办法啊!
借助jmy_1981提供的思路以及查找的资料,自己写了一个函数,实现了对眼睛和笔以及复选框的操作。代码如下:
Call Fun (Window("Geoway - [230-2]").WinTreeView("SysTreeView32"),"基本农田保护图斑",2) '传入节点的text,1=点击眼睛,2=点击笔或复选框
'对图层眼睛,笔,复选框的控制函数
Sub Fun(ObjStr,NodeName,Flog)'ObjStr=树型结构的对象字符串;NodeName=操作的节点名;Flog=操作的对象(眼睛,笔,复选框)
Dim NodePath '节点的名字
Dim TreeArray() '存放树的节点l
Dim NodeCount '树结构的节点数
NodeCount=ObjStr.GetItemsCount
ReDim TreeArray(NodeCount) ' 动态定义数组,动态存放树的节点名称
For i=0 to NodeCount-1 '将节点存放到数组
TreeArray(i)=cstr(ObjStr.GetItem(i))
Next
For j=0 to NodeCount-1 '检索节点位置
If TreeArray(j)=cstr(NodeName) Then
m=j
Exit for '检索到第一个匹配的节点跳出for循环
End If
Next
If m<24 Then '判断是否要拉动滚动条来控制图层
Select Case Flog
Case "1" '所选眼睛的坐标
x=45
y=13+22*m
Case "2" '所选笔,复选框的坐标
x=65
y=13+22*m
End Select
ObjStr.Click x,y '点击操作
else
NodePath=ObjStr.GetItemProperty (m,"path") '得到所选节点的全路径
ObjStr.Select NodePath
Select Case Flog
Case "1" '所选眼睛的坐标
ObjStr.Click 47,541
Case "2" '所选笔,复选框的坐标
ObjStr.Click 65,540
End Select
End If
End Sub
[ 本帖最后由 jifeng 于 2007-11-20 14:32 编辑 ] |
|