MANIPULAR O SCROLL TREEVIEW

TECNOSYSTEM 12/03/2012 09:03:00
#396931
Gostaria que os mestres do VB6 daqui me ajudassem a resolver este problema:
- venho há semanas pesquisando uma solução, porém, sem sucesso!

Gostaria de manipular o evento Scroll do Treeview via código, meu objetivo é casar o Scroll do Treeview com o Scroll do FlexGrid.

Segue alguns links com algumas informações, talvez, importantes:
http://www.vbforums.com/archive/index.php/t-461314.html
http://www.dbforums.com/microsoft-access/973824-sync-scrolling-two-listboxes.html
http://www.codeguru.com/forum/showthread.php?t=421406

Agradeço

Obrigado
JABA 13/03/2012 15:57:52
#397091
http://support.microsoft.com/kb/177743/pt-br
TECNOSYSTEMSP 13/03/2012 16:04:32
#397093
Legal, achei que não teria resposta.

Obrigado JABA, vou testar a rotina, provavelmente terei que mudar o evento Mouse_Down, mas só testando.

Em breve posto os resultados


Abs
TECNOSYSTEM 15/03/2012 15:57:25
#397227
Bom, não tenho competência suficiente para adaptar a rotina. Agradeço se alguém puder me auxiliar.
JABA, este código esta associado ao DRAGDROP, eu preciso exatamente do seguinte, ao clicar no Scroll Vertical, saber exatamente quantos NODES eu estou descendo ou subindo.

Se o meu treeview mostrar 10 nodes e eu clicar no Scroll para descer a barra de rolagem, irei para o node 11. Na tela mostrará os NODES de 2 a 11...e assim por diante.
Manipulando estes números, conseguirei associa-los ao scroll do Flexgrid.

Associando o Scroll das ferramentas terei um Treeview-MultiColumn.
As demais adaptações eu já fiz, só falta esta manipulação.
Encontrei este código nesse site http://www.bigresource.com/Tracker/Track-vb-YrZnkUBsJs/
Citação:

Code:
Option Explicit

Private Sub cmdClose_Click()
[ô]You must end runtime by invoking the Form_(Query)Unload
[ô]not by the [Ô]End[Ô] button in vb UI else lot of misery
Unload Me
End Sub

Private Sub Form_Load()
Dim i As Long
Dim mNode As Node
For i = 0 To 100
Set mNode = TreeView1.Nodes.Add()
mNode.Text = i
Next
Set mNode = Nothing

gHW = TreeView1.hWnd
Hook
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
UnHook
End Sub


Then place this code in a module :

Code:
Option Explicit
Declare Function CallWindowProc Lib [Ô]user32[Ô] Alias [Ô]CallWindowProcA[Ô] _
(ByVal lpPrevWndFunc As Long, _
ByVal hWnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

Declare Function SetWindowLong Lib [Ô]user32[Ô] Alias [Ô]SetWindowLongA[Ô] _
(ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Public Const GWL_WNDPROC = -4

Public Const WM_HSCROLL = &H114
Public Const WM_VSCROLL = &H115

Global lpPrevWndProc As Long
Global gHW As Long

Public Sub Hook()
lpPrevWndProc = SetWindowLong( _
gHW, GWL_WNDPROC, _
AddressOf WindowProc)
End Sub

Public Sub UnHook()
Dim lngReturnValue As Long
lngReturnValue = SetWindowLong( _
gHW, GWL_WNDPROC, _
lpPrevWndProc)
End Sub

Function WindowProc(ByVal hw As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

On Error Resume Next

If uMsg = WM_VSCROLL Or uMsg = WM_HSCROLL Then
[ô]CATCH THE SCROLLING HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Form1.AutoRedraw = True
Form1.Print [Ô]SCROLLING[Ô]
End If

WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)

End Function



Se alguém puder me orientar em , como adquirir este referencial, agradeço !
Tópico encerrado , respostas não são mais permitidas