Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Одновременный скролинг нескольких ListBox'ов в VB6 Добавлено: 25.04.04 22:13  

Автор вопроса:  FLK-72m

Как осуществить сабж? Т.е. я не слепой и не тупой...опнимаю, что надо работать с List1_Scroll....скорее всего, а что там писать?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #1 Добавлено: 26.04.04 16:02

То есть тебе что, надо сделать так, чтобы прокручивая один лист - прокручивался и другой? Думаю, тут тебе без sendmessage не обойтись. Если через задницу, то примерно так...

Option Explicit

Private Declare Function GetScrollInfo Lib "user32" (ByVal hWnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Type SCROLLINFO

cbSize As Long

fMask As Long

nMin As Long

nMax As Long

nPage As Long

nPos As Long

nTrackPos As Long

End Type

Dim Scroll As SCROLLINFO

Private Const WM_VSCROLL = &H115

Private Const SB_THUMBPOSITION = 4

Dim hWnd1 As Long

Dim hWnd2 As Long

Private Sub Form_Load()

Dim i As Long

For i = 1 To 20

List1.AddItem i

List2.AddItem i

Next i

Scroll.fMask = 4

Scroll.cbSize = Len(Scroll)

hWnd1 = List1.hWnd

hWnd2 = List2.hWnd

End Sub

Private Sub List1_Scroll()

Dim Ret As Long

Ret = GetScrollInfo(hWnd1, 1, Scroll)

Ret = SendMessage(hWnd2, WM_VSCROLL, Scroll.nPos * 65536 + SB_THUMBPOSITION, 0)

End Sub

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 26.04.04 17:48

По идее можно поставить на контрол слежку (хук) и, например, в момент скроллирования устанавливать значения TopIndex у всех необходимых ListBox'ов... Вот взято со старого vbRussian:

----------------------------------------------------------
Как синхронизировать скролинг в двух листбоксах?
Вы будете смеяться, достаточно воспользоваться свойствами TopIndex, синхронизируя их при изменении.

----------------------------------------------------------

Ответить

Номер ответа: 3
Автор ответа:
 FLK-72m



Вопросов: 1
Ответов: 1
 Профиль | | #3 Добавлено: 27.04.04 03:20

Ну вы тут пока 2 дня тормозили отвечаю сам на свой вопрос.

Private Sub List1_Scroll()

List2.TopIndex = List1.TopIndex

End Sub

Private Sub List2_Scroll()

List1.TopIndex = List2.TopIndex

End Sub

Ответить

Номер ответа: 4
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 27.04.04 08:33

Ну дык я же сказал - через задницу. А вообще замечаю - простые решения стали приходить в последнюю очередь :))

(Зато интересно повозиться со сложными)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам