madmasles
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <WindowsConstants.au3> Global $fDrag = False, $iOld, $sOld;, $sNew Dim $aData[11] = [10] For $i = 1 To $aData[0] $aData[$i] = 'Flight Crew ' & StringFormat('%02d', $i) Next $hMainGui = GUICreate('Test', 200, 250, -1, -1) $hListView = GUICtrlCreateListView('Name', 10, 10, 180, 230) GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES) For $i = 1 To $aData[0] GUICtrlCreateListViewItem($aData[$i], $hListView) Next GUICtrlSendMsg($hListView, $LVM_SETCOLUMNWIDTH, 0, -1) GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY') GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo If Not IsHWnd($hListView) Then $hListView = GUICtrlGetHandle($hListView) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom')) $iCode = DllStructGetData($tNMHDR, 'Code') Switch $hWndFrom Case $hListView Switch $iCode Case $LVN_BEGINDRAG $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam) $iItem = DllStructGetData($tInfo, 'Index') $iOld = $iItem $sOld = _GUICtrlListView_GetItemText($hListView, $iOld) $fDrag = True Case $LVN_HOTTRACK If $fDrag Then $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam) $iItem = DllStructGetData($tInfo, 'Index') If $iItem > -1 And $iItem < _GUICtrlListView_GetItemCount($hListView) Then ;перетаскивать _GUICtrlListView_DeleteItem($hListView, $iOld) _GUICtrlListView_InsertItem($hListView, $sOld, $iItem) ;менять местами: ;$sNew = _GUICtrlListView_GetItemText($hListView, $iItem) ;_GUICtrlListView_SetItemText($hListView, $iItem, $sOld) ;_GUICtrlListView_SetItemText($hListView, $iOld, $sNew) EndIf $fDrag = False EndIf EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY |
| Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 01:39 14-06-2011 | Исправлено: madmasles, 15:00 14-06-2011 |
|