Of course, you just need to edit a few lines.
#include <GUIConstants.au3>
#include <GuiListView.au3>
Opt("GUICloseOnESC", 0)
Opt("MustDeclareVars", True)
Global $hList, $idDummy
Example()
Func Example()
Local $hMain = GUICreate("Example", 230, 170)
Local $idList = GUICtrlCreateListView("Column 1|Column 2", 10, 10)
GUICtrlCreateListViewItem("Item 1|Item 2", $idList)
GUICtrlCreateListViewItem("Item 3|Item 4", $idList)
$hList = GUICtrlGetHandle($idList)
$idDummy = GUICtrlCreateDummy()
GUIRegisterMsg($WM_NOTIFY, WM_NOTIFY)
GUISetState()
Local $iItem, $iSubItem, $aRect, $sData, $aPos = ControlGetPos($hMain, "", $idList)
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idDummy
$iItem = _WinAPI_LoWord(GUICtrlRead($idDummy))
$iSubItem = _WinAPI_HiWord(GUICtrlRead($idDummy))
If $iSubItem = 0 Then ContinueLoop
$aRect = _GUICtrlListView_GetSubItemRect($idList, $iItem, $iSubItem)
$sData = GUICreateInput($hMain, _GUICtrlListView_GetItemText($idList, $iItem, $iSubItem), $aRect[0] + $aPos[0], $aRect[1] + $aPos[1], $aRect[2] - $aRect[0], $aRect[3] - $aRect[1])
If $sData Then _GUICtrlListView_SetItemText($idList, $iItem, $sData, $iSubItem)
EndSwitch
WEnd
EndFunc ;==>Example
Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $lParam)
If $tInfo.hWndFrom = $hList And $tInfo.Code = $NM_DBLCLK Then GUICtrlSendToDummy($idDummy, _WinAPI_MakeLong($tInfo.Index, $tInfo.SubItem))
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func GUICreateInput($hWnd, $sText, $iLeft, $iTop, $iWidth, $iHeight)
Local $hGUI = GUICreate("", $iWidth, $iHeight, $iLeft, $iTop + 1, $WS_POPUP, $WS_EX_MDICHILD, $hWnd)
Local $idInput = GUICtrlCreateInput($sText, 1, 1, $iWidth - 1, $iHeight - 1)
Local $idOut = GUICtrlCreateDummy()
GUISetState()
Local $aAccel[2][2] = [["{ENTER}", $idInput], ["{ESC}", $idOut]], $sInput
GUISetAccelerators($aAccel, $hGUI)
While WinActive($hGUI)
Switch GUIGetMsg()
Case $idInput
$sInput = GUICtrlRead($idInput)
ExitLoop
Case $idOut
ExitLoop
EndSwitch
WEnd
GUIDelete($hGUI)
GUISetState(@SW_RESTORE, $hWnd)
Return $sInput
EndFunc ;==>GUICreateInput