本帖最后由 kxing 于 2012-6-17 12:16 编辑
请问下各位如何能获取鼠标单机的项目文本呢?
目前使用以下方法很不准确,因为单机时焦点还没跳转到该item上。
需要点第二次才能获取到正确的项目文本。而双击则正常。
感谢高手们回答!!!!#include <GUIConstantsEx.au3>
#include <StructureConstants.au3>
#include <WindowsConstants.au3>
#include <TreeViewConstants.au3>
#Include <GuiTreeView.au3>
$hForm=guicreate("treeview",200,200)
$hTree=guictrlcreatetreeview("",0,0,200,200)
guisetstate()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
for $i=1 to 10
guictrlcreatetreeviewitem("item "&$i,$hTree)
next
while 1
switch guigetmsg()
case -3
exit
endswitch
wend
Func WM_NOTIFY($hWndGUI, $MsgID, $WParam, $LParam)
Local $tagNMHDR, $Event, $hWndFrom, $IDFrom
Local $tagNMHDR = DllStructCreate("int;int;int", $LParam)
If @error Then Return $GUI_RUNDEFMSG
$IDFrom = DllStructGetData($tagNMHDR, 2)
$Event = DllStructGetData($tagNMHDR, 3)
$tagNMHDR = 0
Switch $IDFrom;选择产生事件的控件
Case $hTree
Switch $Event; 选择产生的事件
Case $NM_CLICK ; 左击
$itemtext=_guictrltreeview_gettext($hTree,guictrlread($hTree))
msgbox(0,'你选择了',$itemtext)
;Case $NM_DBLCLK ; 双击
;Case $NM_RCLICK ; 右击
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
|