Salve raga' , ho letto in rete come scorrere un datagrid con l' ausilio della rotellina del mouse , ma non ho capito un granche'.
Potreste spegarmi come fare????![]()
![]()
Grazie mille
![]()
Salve raga' , ho letto in rete come scorrere un datagrid con l' ausilio della rotellina del mouse , ma non ho capito un granche'.
Potreste spegarmi come fare????![]()
![]()
Grazie mille
![]()
risolto cosi :![]()
nell' evento load del form invece:codice: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 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 Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Public Const GWL_WNDPROC = (-4) Public lpPrevWndProc As Long Const WM_MOUSEWHEEL = &H20A Const WHEEL_DELTA = 120 Dim Count As Integer Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If Msg = WM_MOUSEWHEEL Then Dim Delta As Long Static Travel As Long Delta = HiWord(wParam) Travel = Travel + Delta MouseWheel Travel \ WHEEL_DELTA, LoWord(lParam), HiWord(lParam) Travel = Travel Mod WHEEL_DELTA End If WndProc = CallWindowProc(lpPrevWndProc, hWnd, Msg, wParam, lParam) End Function Sub MouseWheel(Travel As Integer, X As Long, Y As Long) magazzino.datagrid1.Scroll 0, -Travel End Sub Function HiWord(DWord As Long) As Integer CopyMemory HiWord, ByVal VarPtr(DWord) + 2, 2 End Function Function LoWord(DWord As Long) As Integer CopyMemory LoWord, DWord, 2 End Function
e tutto funge ...............................................codice:lpPrevWndProc = SetWindowLong(datagrid1.hWnd, GWL_WNDPROC, AddressOf WndProc)![]()
Ciao IVANO78,
sono interessato alla tua soluzione, però ho bisogno di aiuto e spero che tu abbia tanta pazienza:
ho inserito il codice da te riportato nel Generale\Dichiarazioni, (non sapevo dove devo metterlo, forse in qualche modulo....e come si fa) e nel Load del Form la stringa indicata: ma all'vvio mi segnala l'errore come da allegato evidenziando la quarta riga che riporto "Public Const GWL_WNDPROC = (-4)".
Il codice è stato inserito con copia e incolla.
Cosa mi suggerisci di fare???
Comunque grazie
Windows 7 Home Premium SP1 64 bit - AMD Athlon(tm) 64x2 Dual Core Processor 6000+ 3.00 GHz - 4 GB RAM - NVIDIA GeForce 8400 GS
Guarda che il messaggio a cui rispondi e' di
giugno
e ivano potrebbe non partecipare piu' al forum o non controllarlo piu' ...
In ogni caso, la prima parte del codice va inserito in un MODULO .bas e la seconda, come gia' detto, "nell' evento load del form" ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ecco come si scrolla con la rotellina:
e nei riferimenti devi aggiungere WheelCatcher che scarichi da itnernetcodice:Private Sub WheelCatcher_WheelRotation(Rotation As Long, X As Long, Y As Long, CtrlHwnd As Long) dgr_agenda.Scroll 0, -Rotation End Sub
aggiungi l'oggetto nella form, e grazie aquelle 3 righe la DataGrid ti scorre![]()
No ... non e' grazie a quelle 3 righe, ma grazie a tutto il codice inserito nella libreria WheelCatcher che funziona ... e devi avere la libreria installata e registrata.grazie aquelle 3 righe la DataGrid ti scorre![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
nei riferimenti devi aggiungere WheelCatcher che scarichi da internet e aggiungi l'oggetto nella form, e grazie aquelle 3 righe la DataGrid ti scorre
![]()
Grazie Ragazzi.
Per Oregon:
sì immaginavo quanto dici circa IVANO78, ma un tentativo andava comunque fatto.
Ho provato ad inserire nel progetto un modulo.bas che ho chiamato "SCROLL".
Ma il modulo come si richiama, o viene letto all'avvio?
Dopo aver inserito la riga singola nel form all'avvio viene segnalato "Necessario oggetto" e a questo punto non so cosa fare. Mi dai ancora un suggerimento? Grazie.
Per StegCO:
Ho fatto come mi hai indicato ma non succedde proprio nulla. Dove vanno inserite esattamente le famose tre righe e come?
Ancora grazie Ragazzi.
Windows 7 Home Premium SP1 64 bit - AMD Athlon(tm) 64x2 Dual Core Processor 6000+ 3.00 GHz - 4 GB RAM - NVIDIA GeForce 8400 GS
dove vuoi, è una sub routine, mettila per ultima..
ricordati, come suggerito da oregon, di aggiugnere il riferimento e poi creare l'oggetto nella form![]()
Sì StegCO,
Ho scaricato WheelCatcher che è un ocx.
allora per poter avere l'oggetto (il lucchetto) da inserire nella FORM devo inserire WheelCatcher nei componenti e non nei riferimenti in quanto viene richiesta uan DLL.
E' necessaria anche una dll? e dove la trovo esattamente dato che ho trovato solo OCX??
Scusami se ti disturbo.
Windows 7 Home Premium SP1 64 bit - AMD Athlon(tm) 64x2 Dual Core Processor 6000+ 3.00 GHz - 4 GB RAM - NVIDIA GeForce 8400 GS