#Include <GUIConstantsEx.au3>
#Include <GUIListView.au3>
#Include <ListViewConstants.au3>
#Include <WindowsConstants.au3>
Opt('GUIOnEventMode', 1)
$Form1 = GUICreate('Form1', 633, 454, 291, 115)
GUISetOnEvent($GUI_EVENT_CLOSE, 'Form1Close')
$ListView1 = GUICtrlCreateListView('Column', 85, 85, 250, 200)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
$hListView1 = GUICtrlGetHandle(-1)
For $i = 1 To 10
GUICtrlCreateListViewItem('Item ' & $i, $ListView1)
Next
GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')
GUISetState(@SW_SHOW)
While 1
Sleep(100)
WEnd
Func Form1Close()
Exit
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
Local $tNMITEMACTIVATE = DllStructCreate($tagNMITEMACTIVATE, $lParam)
Local $hFrom = DllStructGetData($tNMITEMACTIVATE, 'hWndFrom')
Local $Index = DllStructGetData($tNMITEMACTIVATE, 'Index')
Local $ID = DllStructGetData($tNMITEMACTIVATE, 'Code')
Switch $hFrom
Case $hListView1
Switch $ID
Case $LVN_ITEMCHANGED
If (BitAND(DllStructGetData($tNMITEMACTIVATE, 'Changed'), $LVIF_STATE)) And (BitAND(DllStructGetData($tNMITEMACTIVATE, 'NewState'), $LVIS_SELECTED)) And (Not BitAND(DllStructGetData($tNMITEMACTIVATE, 'OldState'), $LVIS_FOCUSED)) Then
ConsoleWrite('Select: Item' & ($Index + 1) & @CR)
EndIf
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY