mecartron,
You will need to get the client area coordinates of the listview item and then convert them to screen coordinates to create the combo GUI in the correct place.
Change the first part of the user function to this:
Func _UserFunc($hHandle, $iIndex, $iRow, $iColumn)
; Get coordinates of the item clicked - note this is whole row, not the subitem
$aRect = _GUICtrlListView_GetItemRect($hHandle, $iRow)
; Convert the coordinates from GUI client area to screen
Local $tPoint = DllStructCreate("int X;int Y")
DllStructSetData($tPoint, "X", 190) ; We know the width of the first 2 columns
DllStructSetData($tPoint, "Y", $aRect[1]) ; And we get this value from the earlier function call
; Now use the API to convert the coordinates
_WinAPI_ClientToScreen($hHandle, $tPoint)
; Create a combo dialog using the converted coordinates
$hGUICombo = GUICreate("", 90, 25, DllStructGetData($tPoint, "X") , DllStructGetData($tPoint, "Y"), $WS_POPUP)
; Create the combo and fill it with the data for the specified row
$cCombo = GUICtrlCreateCombo("", 0, 0, 80, 20)
GUICtrlSetData($cCombo, $aComboData[$iRow])
GUISetState()
All clear?
M23