Вопрос про LISTBOX

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Egor_moscow
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 31.07.2004 (Сб) 5:15

Вопрос про LISTBOX

Сообщение Egor_moscow » 08.10.2004 (Пт) 3:57

Доброго времени суток!

Подскажите пожалуйста как реализовать список в котором элементы можно переносить мышкой.
Ну например как плей лист в winamp'e, да и в куче других порог это есть, а вот стандартные контролы ИМХО это не поддерживают.

Заранее благодарю.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 08.10.2004 (Пт) 10:25

Ну, если ты хочешь сделать это именно через листбокс, и листвью тебя не устраивает, но лукай на след. свойства контрола:
OLEDragMode
OLEDropMode
Краткое описание механизма OLE Drag'n'Drop я недавно давал в этом форуме, найдешь поиском. Хотя, конечно, попариться придется...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 08.10.2004 (Пт) 10:58

Ну, если ты хочешь сделать это именно через листбокс, и листвью тебя не устраивает,


Ну он не говорил что не устраивает...

Хотя, конечно, попариться придется...


Чего там париться? Вроде все элементарно...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Egor_moscow
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 31.07.2004 (Сб) 5:15

Сообщение Egor_moscow » 16.10.2004 (Сб) 3:08

Блин не понял :(
Если можно по подробнее ;) плз.

Заране благодарю.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.10.2004 (Сб) 13:02

Держи пример без всяких ListView и OLEDrag-ов:
Код: Выделить всё
Option Explicit
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const LB_ITEMFROMPOINT = &H1A9&
Dim SourceIndex As Long

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then SourceIndex = List1.ListIndex: ReleaseCapture
End Sub

Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
    Dim DestIndex As Long
    DestIndex = SendMessage(List1.hWnd, LB_ITEMFROMPOINT, 0, 65536 * (Y \ Screen.TwipsPerPixelY) + (X \ Screen.TwipsPerPixelX))
    If (SourceIndex <> DestIndex) And ((DestIndex And &HFFFF0000) = 0) Then
        If SourceIndex > DestIndex Then
            List1.AddItem List1.List(SourceIndex), DestIndex
            SourceIndex = SourceIndex + 1
        Else
            List1.AddItem List1.List(SourceIndex), DestIndex + 1
        End If
        List1.RemoveItem SourceIndex
        SourceIndex = DestIndex
        List1.ListIndex = DestIndex
    End If
End If
End Sub
Изображение

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 18.10.2004 (Пн) 9:55

ГЕНИАЛЬНО :shock: :D :D :D :D :D :D :D :D :D :D :lol:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 18.10.2004 (Пн) 10:01

М-да... действительно гениально

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.10.2004 (Пн) 15:33

Я не пойму, это подкол или похвала?
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 18.10.2004 (Пн) 15:36

tyomitch писал(а):Я не пойму, это подкол или похвала?

Был бы подкол, был бы такой смайл :lol:
а так... это похвала

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.10.2004 (Пн) 16:03

У Мика именно такой смайл в конце, вот я и растерялся...
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 18.10.2004 (Пн) 16:04

Понятно, насчёт Мика не знаю, но от меня точна одна похвала :P

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 18.10.2004 (Пн) 21:57

Помню, я когда-то так же skiperski сказал, так он, судя по всему, счел это за подколку...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList