winnerid 发表于 2015-1-13 21:03:09

如何实现对treeview中某个节点双击?

可以得到treeview某个节点, 并选中, 但如何实现鼠标双击呢? 这个treeview节点只能双击打开其它窗口,无法用快捷菜单,回车之类的打开.

zhouhaijin 发表于 2015-1-14 11:27:47

#Include <GuiTreeView.au3>
_GUICtrlTreeView_ClickItem($hWnd, $hItem[, $sButton = "left"[, $fMove = False[, $iClicks = 1[, $iSpeed = 0]]]])

这个是先取项目位置再用鼠标去点的

zhouhaijin 发表于 2015-1-14 11:31:58

有些程序会在响应点击里判断鼠标位置是否在点击项目上,不在不响应。

zhouhaijin 发表于 2015-1-14 11:50:29


#Include <GuiTreeView.au3>
#Include <WinAPI.au3>

$WinTitle = "窗口标题"
$ControlID = "控件ID"
$hWnd = ControlGetHandle($WinTitle, "", $ControlID )
$hItem = _GUICtrlTreeView_FindItem($hWnd, ControlTreeView($WinTitle, "", $ControlID, "GetText", "根项目|子项目或用#0 #1 #3索引"))
Local $tRect = _GUICtrlTreeView_DisplayRectEx($hWnd, $hItem, True)
If @error Then Exit
Local $tPoint = _WinAPI_PointFromRect($tRect, True)
Local $iX, $iY
_WinAPI_GetXYFromPoint($tPoint, $iX, $iY)
ControlClick($WinTitle, "",$ControlID , "left", 2, $iX, $iY)

可以上面这样试试,这样没有鼠标过程。
如果不行应该有判断鼠标位置再用下面的方法模拟鼠标

#Include <GuiTreeView.au3>
#Include <WinAPI.au3>

$WinTitle = "窗口标题"
$ControlID = "控件ID"
$hWnd = ControlGetHandle($WinTitle, "", $ControlID )
$hItem = _GUICtrlTreeView_FindItem($hWnd, ControlTreeView($WinTitle, "", $ControlID, "GetText", "根项目|子项目或用#0 #1 #3索引"))
_GUICtrlTreeView_ClickItem($hWnd, $hItem, "left", False, 2)

winnerid 发表于 2015-1-14 20:14:48

多谢! 请问autoitX有相应的函数吗? DataGridView这种控件能不能判断出选中的cell的值?

winnerid 发表于 2015-1-14 20:15:26

回复 2# zhouhaijin


    多谢! 请问autoitX有相应的函数吗? DataGridView这种控件能不能判断出选中的cell的值?

wangms 发表于 2015-1-15 08:56:14

学习学习。。。。。。。。。。。。。。。。。。。
页: [1]
查看完整版本: 如何实现对treeview中某个节点双击?