找回密码
 加入
搜索
查看: 4032|回复: 4

[系统综合] 如何返回使用ControlListView 所选择的控件坐标

  [复制链接]
发表于 2010-9-8 18:16:52 | 显示全部楼层 |阅读模式
各位大虾们:
小弟想请教下:
1.在使用ControlListView 选定控件中某一项目之后,有没有办法能够返回这个选定项目的X,Y坐标? 无论是相对的还是绝对....谢谢了 各大哥大姐.
发表于 2010-9-8 18:39:58 | 显示全部楼层

#Include <GuiListView.au3>
$Index = _GUICtrlListView_GetSelectedIndices($ListView1)
If Not StringLen($Index) Then Return
$a = _GUICtrlListView_GetSelectedIndices($ListView1)
$b = _GUICtrlListView_GetItemTextString($ListView1, Number($a))
$chaifen = StringSplit($b, "|")
MsgBox(0,"点击的ListView内容-假设为3列",$chaifen[1]&@CRLF&$chaifen[2]&@CRLF&$chaifen[3])
发表于 2010-9-8 19:44:47 | 显示全部楼层
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

$Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work

_Main()

Func _Main()
        Local $aRect, $hListView
        
        GUICreate("ListView Get Item Rectangle", 400, 300)
        $hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
        GUISetState()

        ; Add columns
        _GUICtrlListView_AddColumn($hListView, "Items", 100)

        ; Add items
        _GUICtrlListView_AddItem($hListView, "Item 1")
        _GUICtrlListView_AddItem($hListView, "Item 2")
        _GUICtrlListView_AddItem($hListView, "Item 3")

        ; Get item 2 rectangle
        $aRect = _GUICtrlListView_GetItemRect($hListView, 1)
        MsgBox(4160, "Information", StringFormat("Item 2 Rectangle : [%d, %d, %d, %d]", $aRect[0], $aRect[1], $aRect[2], $aRect[3]))

        ; Loop until user exits
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
EndFunc   ;==>_Main

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-9-8 20:26:00 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>

$hListView = ControlGetHandle("Program Manager","FolderView","SysListView321")
$i=0
dim $z="桌面图标坐标"
While 1
$aRect = _GUICtrlListView_GetItemRect($hListView, $i)
if $aRect[1] = 0 and $aRect[2] = 0 and $aRect[3] = 0 then exitloop
$z = $z&@CR&ControlListView("Program Manager","FolderView","SysListView321","GetText",$i)&"  坐标="&$aRect[0]&","&$aRect[1]

&","&$aRect[2]&","&$aRect[3]
$i=$i+1
WEnd

MsgBox(0, "桌面共"&$i+1&"个图标",$z)

评分

参与人数 2金钱 +50 收起 理由
liufenglg + 30
afan + 20

查看全部评分

 楼主| 发表于 2010-9-8 21:38:46 | 显示全部楼层
谢谢各位了 ,慢慢研究下。嘿嘿
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 02:28 , Processed in 0.090734 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表