Bonjour à tous,
J'espère poster dans la bonne section.
Je lutte depuis hier car je ne parviens à lier, via les API et le subclassing, le mouvement d'un scrollbar au contenu d'un listview.
Je m'explique.
Je cherche à synchroniser deux listviews, listview1 et listview2.
Première solution, que je ne souhaite pas retenir mais qui fonctionne. A chaque clic sur la flèche du scrollbar de la listview1, le scrollbar de la listview2 bouge d'autant :
Seconde solution, qui ne fonctionne qu'à moitié. Je cherche à ce que chaque déplacement du scrollbar de la listview1 (l'utilisateur fait varier le scroll avec sa souris) se matérialise sur le scrollbar de la listview2. J'y parviens mais le contenu du listview2, lui, ne bouge pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Function WindowProc(hwnd As Long, Msg As Long, wParam As Long,lParam As Long) As Long Dim sci As SCROLLINFO If hwnd = ListView1.hwnd Then 'si le handle est celui de la Listview1 Select case Msg Case WM_HSCROLL 'S'il s'agit du scrollbar horizontal de la Listview1 Call SendMessage(ListView2.hwnd, WM_HSCROLL, wParam, ByVal 0&) end select end if WindowProc = CallWindowProc(GetProp(hwnd, "OldWindowProc"), hwnd, msg, wParam, lParam) end function.
Ici, le scrollbar de la listview2 varie mais nullement le contenu de la listview2...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Function WindowProc(hwnd As Long, Msg As Long, wParam As Long,lParam As Long) As Long Dim sci As SCROLLINFO If hwnd = ListView1.hwnd Then 'si le handle est celui de la Listview1 Select case Msg Case WM_HSCROLL 'S'il s'agit du scrollbar horizontal de la Listview1 With sci ' récupération de tous les paramètres du scrollbar .cbSize = Len(sci) .fMask = SIF_ALL End With Call GetScrollInfo(hwnd, SB_HORZ, sci) Call SetScrollInfo(ListView2.hwnd, SB_HORZ, sci, True)'défini les valeurs du scrollbar de la listview1 au scrollbar de la listview2. end select end if WindowProc = CallWindowProc(GetProp(hwnd, "OldWindowProc"), hwnd, msg, wParam, lParam) end function.
Est ce que quelqu'un pourrait m'aider svp ???
Merci d'avance,
Quicksilv86
Partager