Страница: 1 |
|
Вопрос: Полоса прокрутки
|
Добавлено: 14.02.09 10:06
|
|
Автор вопроса: Artful
|
У меня есть несколько ListBox стоящих рядом, записи записываются одновременно во все... и когда окна не хватает выпадают полосы прокрутки у каждого LisBox. Как сделать так, чтобы выпадала только одна полоса прокрутки (крайняя) и чтобы ее прокрутка воздействовала на все ListBoxы? Помогите, пожалуйста!!!
Ответить
|
Номер ответа: 3 Автор ответа:
fAndOrIn
![](images/starBlue.gif) ![](images/starBlue.gif) ![](images/starBlue.gif)
Вопросов: 5 Ответов: 344
|
Профиль | | #3
|
Добавлено: 14.02.09 18:10
|
несколько ListBox стоящих рядом, записи записываются одновременно во все Дежа-вю, не иначе... Надо ли иметь эти несколько ListBox согласованных , не проще ли иметь один (ListBox), поройся на форуме буквально за последние 1-2 иесяца - найдешь ответ. Не нашел - дай сигнал, попробую подсказать.
Ответить
|
Номер ответа: 7 Автор ответа:
Smith
![](images/starGold.gif) ![](images/starGold.gif) ![](images/starGold.gif) ![](images/starGold.gif)
ICQ: adamis@list.ru ![номер adamis@list.ru](http://wwp.icq.com/scripts/online.dll?icq=adamis@list.ru&img=5)
Вопросов: 153 Ответов: 3632
|
Профиль | | #7
|
Добавлено: 15.02.09 18:07
|
Есть и такой вариант, бросаешь на форму три листбокса и этот код
- Option Explicit
-
- Private Sub Form_Load()
- OldList1Proc = SetWindowLong(List1.hWnd, -4&, AddressOf List1Proc)
- OldList2Proc = SetWindowLong(List2.hWnd, -4&, AddressOf List2Proc)
- OldList3Proc = SetWindowLong(List3.hWnd, -4&, AddressOf List3Proc)
- End Sub
-
- Private Sub Form_Unload(Cancel As Integer)
- Call SetWindowLong(List1.hWnd, -4&, OldList1Proc)
- Call SetWindowLong(List2.hWnd, -4&, OldList2Proc)
- Call SetWindowLong(List3.hWnd, -4&, OldList3Proc)
- End Sub
добавляешь модуль и в него этот код
- Option Explicit
-
- Public Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
-
- Public OldList1Proc As Long
- Public OldList2Proc As Long
- Public OldList3Proc As Long
-
- Public Function List1Proc(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- List1Proc = CallWindowProc(OldList1Proc, hWnd, wMsg, wParam, lParam)
- If wMsg = 522 Or wMsg = 277 Or wMsg = 256 Or wMsg = 513 Then
- CallWindowProc OldList2Proc, Form1.List2.hWnd, wMsg, wParam, lParam
- CallWindowProc OldList3Proc, Form1.List3.hWnd, wMsg, wParam, lParam
- End If
- End Function
-
- Public Function List2Proc(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- If wMsg = 522 Or wMsg = 277 Or wMsg = 256 Or wMsg = 513 Then
- CallWindowProc OldList1Proc, Form1.List1.hWnd, wMsg, wParam, lParam
- List2Proc = CallWindowProc(OldList2Proc, hWnd, wMsg, wParam, lParam)
- CallWindowProc OldList3Proc, Form1.List3.hWnd, wMsg, wParam, lParam
- Else: List2Proc = CallWindowProc(OldList2Proc, hWnd, wMsg, wParam, lParam)
- End If
- End Function
-
- Public Function List3Proc(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- If wMsg = 522 Or wMsg = 277 Or wMsg = 256 Or wMsg = 513 Then
- CallWindowProc OldList1Proc, Form1.List1.hWnd, wMsg, wParam, lParam
- CallWindowProc OldList2Proc, Form1.List2.hWnd, wMsg, wParam, lParam
- End If
- List3Proc = CallWindowProc(OldList3Proc, hWnd, wMsg, wParam, lParam)
- End Function
Это я так от делать нечего для разнообразия подкинул, попробуй если будет время.
Ответить
|
Страница: 1 |
Поиск по форуму