WheelMouse - Funktionalität

Hallo leute…

Jetz fehlt noch eine kleine annehmlichkeit die so ne ellenlange liste haben sollte. Wie ihr bestimmt schon im Titel gelesen habt ist das die Scroll Funktionalität für die maus.

Ich habe da schon auf „vbarchiv.net“ was unter dem eintrag
WheelMouse-Funktionalität für beliebige Controls
oder
Mausrad in VB-Controls einbeziehen

Gefunden was mit sicherheit auch funktionieren würde. Nur leider ist das HTACCESS geschützt und man kommt nur rein wenn man so n dämlichen News letter aboniert. Was ich auch gemacht hab nur es funzt genausowenig wie mein scroll rad in meinem programm.

Hat da ma einer ne idee wie man das machen könnte?
n kleinen codeschnipsel oder sowas?
N einfall? n tipp irgendwas ^^

Hoffe mir kann wer helfen ^^ :smile:

danke schonmal im vorraus.

grüße der digi … ^^

Hallo,

auf http://www.activevb.de/tipps/vb6tipps/tipp0560.html findest Du den Code, ohne Dich anmelden zu müssen.

Gruß, Rainer

hm ^^ danke ^^
Nur ich hab damit n Problem^^ wie hätts auch anders sein können *g*

Wie soll ich das jetz meinem DataGrid (DGV) sagen das das gefälligst zu scrollen hat?

Das hat ne Vertikale Scroll Bar. Ich raff das irgendwie nich so richtig mit den ganzen API zeugs das is mir für den anfang zu hoch ^^ :frowning:

Hab mir gedacht es könnte mit
From1.DGV.Scroll gehen aber da schmiert alles ab. Seh nichma was das fürn fehler is ^^ aber wahrscheinlich kein guter ^^ :smiley:

villeicht kann mir nochma einer sagen wie ich das mitm DataGrid mache.

From1.DGV.VScroll + oder - ? aber die funktion scheints net zu geben :frowning:

Danke erstma für den code :smile:
und hoffe das de mir villeicht noch erklärst wie ich die funktion jetz ansprechen muss. Danke grüße vom digi ^^

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Nur ich hab damit n Problem^^ wie hätts auch anders sein
können *g*

Wie soll ich das jetz meinem DataGrid (DGV) sagen das das
gefälligst zu scrollen hat?

Das hat ne Vertikale Scroll Bar. Ich raff das irgendwie nich
so richtig mit den ganzen API zeugs das is mir für den anfang
zu hoch ^^ :frowning:

Hab mir gedacht es könnte mit
From1.DGV.Scroll gehen aber da schmiert alles ab. Seh nichma
was das fürn fehler is ^^ aber wahrscheinlich kein guter ^^ :smiley:

hmmm, Papameter vergessen? Bei mir klappt scrollen mit einem Mousecklick bestens …

Private Sub Command1\_Click()
 DataGrid1.Scroll 0, 1
End Sub

Der erste Wert gibt an, um wie viel Spalten gescrollt werden soll, der zweite Wert um wie viele Zeilen. Im Beispiel srollt das Grid also nur nach unten.

Daß Dein Programm abschmiert liegt daran, daß Du mit Subclassing arbeiten mußt. Das Programm fängt die Kommunikation zwischen der Form und Windows ab, verarbeitet die Werte und gibt sie weiter. Bei einem Fehler werden falsche Werte angegeben und der Task schmiert ab. Immer fleißig speichern … ich mag Subclasing auch nicht, geht aber wohl nicht anders. :smile:

Gruß, Rainer

Vorsicht mit Subclassing
Hi,

noch ein kleiner Hinweis wegen des Subclassings.

Beende das Programm auch in der Entwicklungsumgebung immer, indem Du das Programm schließt, nicht mit der EDI stoppen, sonst läuft das Subclassing weiter, das könnte negative Auswirkungen auf Deine Maus haben.

Gruß, Rainer

Ich bin am verzweifeln ^^
Ich raffs nich warum das nich geht.

Also ich hab mir das beispiel projekt runter geladen von dem link den du mir geschickt hast.

Soo das Modul1.bas hab ich bei meinem programm eingebunden.
Rufe es im Form1 (ArtikelView) mit „Init Me“ auf habs auch schon mit „Init ArtikelView“ probiert oder dem „Modul1.Init Me oder ArtikelView“. Aber geht nicht. Schmiert immer ab.

Den Code in der Funktion:

Public Function MouseWheelRotation(Richtung As Long, Buttons As mButtons, \_
 X As Long, Y As Long, hWnd As Long)



 ArtikelView.DGV.Scroll 0, 1

 'Hier die eigene Auswertung rein
 'If Form1.ProgressBar1.Value Form1.ProgressBar1.Min And \_
 ' Richtung = -1 Then
 ' Form1.ProgressBar1.Value = Form1.ProgressBar1.Value + Richtung
 'End If
End Function

Nur ma zum testen probiert das da rein zu schreiben. Aber da schmiert er auch wunderschön ab. Macht gar nix :frowning:

Oh man so kompliziert war bis jetz noch nix ich krieg noch n rappel. Denkt man gar nich was für quelltext hinter nem einfachen scrollen stecken kann ^^

danke im vorraus

grüße
digi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Ich bin am verzweifeln ^^
Ich raffs nich warum das nich geht.

also erst mal ganz langsam, durchatmen und das ganze Projekt laden und starten.

Dann gibst Du der Form dieses Projekts erst mal den Namen, den Deine Form hat und passt das Ganze etwas an und/oder entfernst alles, was Du nicht brauchst aus dem Modul. Das Modul will ja auf Steuerelemente zugreifen, die mit Form1. … adressiert sind. Heißt Deine Form nicht Form 1 oder gibt es bei Dir das Label nicht, in das das Modul schreiben will, stürzt es ab. Du mußt Dich leider langsam herantasten.

Gruß, Rainer

Jeha ich habs geschafft :smile:
Aber nich mit der lösung von der seite die du gepostet hast. Sondern:

Form_Load

 ' Mouse Wheel
 Set Msg = New MsgHook
 Msg.Hook hWnd, WM\_MOUSEWHEEL





Private Sub Msg\_Before(uMsg As Long, wParam As Long, lParam As Long, retVal As Long)
 Dim Delta As Integer
 Dim Value As Long

 With DGV
 'Mausrad-Drehung bestimmen:
 Delta = (wParam And &HFFFF0000) \ &H10000

 'Zielwert bestimmen:
 If Delta 

Module habe ich von http://vb-tec.de/mausrad.htm das sind 2 stück eine cls und ein bas. Funktioniert wunderbar!!! Und in vb-fun wollten sie allen schon wieder weiß machen das es nicht möglich ist mitm DGV ^^ genau wie man mir gesagt hat es sei nicht möglich das mit dem DataGrid zu machen was ich gemacht hab ^^ muhaha :smiley: 

Danke nochmal 1000x Dank für die ideen und anregungen! Echt geiles forum hier!!!! :smile: \*euphorische stimmung\* ^^

Sooo nächstes Problem ^^
Ich dachte die funktion kommt mit dem Mausrad wheel bla gleich mit aber scheises wars ^^ ...

ZB: Internetexplorer Scrollbar wenn man diese nach unten zieht wird auch der fensterinhalt nach unten oder oben gescrollt während dem ziehen also aktualisiert.

Wie mache ich das jetz mit der scrollbar meines daragrids das wenn ich anklicke und dieses winzige graue balkenartige gebilde nach oben oder unten schiebe das der inhalt des DGV mit wandert?! Gibts da n on Change event für das ding? Ich mein ich find da drinne nur .Scroll , ScrollBars und noch n haufen funktionen für rows cols usw ^^ ...

Das währe noch super wenn mir da nochma wer n denkanstoß geben könnte ^^ bin halt noob und kenn die funktionen nich alle :frowning:


güße und danke vom digi ^^


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>

Hallo,

Jeha ich habs geschafft :smile:
Aber nich mit der lösung von der seite die du gepostet hast.
Sondern:

Form_Load

’ Mouse Wheel
Set Msg = New MsgHook
Msg.Hook hWnd, WM_MOUSEWHEEL

Private Sub Msg_Before(uMsg As Long, wParam As Long, lParam As
Long, retVal As Long)
Dim Delta As Integer
Dim Value As Long

With DGV
'Mausrad-Drehung bestimmen:
Delta = (wParam And &HFFFF0000) \ &H10000

'Zielwert bestimmen:
If Delta

Schön! :smile: Ich habe den Code von AVB nicht zerlegt, denke aber daß das da auch herausgekommen wäre, wenn Du alles überflüssige entfernt hättest. :smile: Ich hab’s selbst noch nicht gemacht, …

Module habe ich von http://vb-tec.de/mausrad.htm das sind 2
stück eine cls und ein bas. Funktioniert wunderbar!!! Und in
vb-fun wollten sie allen schon wieder weiß machen das es nicht
möglich ist mitm DGV ^^ genau wie man mir gesagt hat es sei
nicht möglich das mit dem DataGrid zu machen was ich gemacht
hab ^^ muhaha :smiley:

Danke nochmal 1000x Dank für die ideen und anregungen! Echt
geiles forum hier!!! :smile: *euphorische stimmung* ^^

Sooo nächstes Problem ^^
Ich dachte die funktion kommt mit dem Mausrad wheel bla gleich
mit aber scheises wars ^^ …

ZB: Internetexplorer Scrollbar wenn man diese nach unten zieht
wird auch der fensterinhalt nach unten oder oben gescrollt
während dem ziehen also aktualisiert.

Wie sich das Datagrid dabei verhält ist im OCX des Datagrids programmiert, das kannst Du nicht beeinflussen, nur umgehen. :smile: Den Quellcode für das Datagrid.OCX hast Du ja nicht, ich auch nicht.

Tipp für einen Trick: lege über den Scrollbalken des Datagrid ein VScroll und programmier’s selbst, dann geht es so, wie Du das haben möchtest. Was auch geht, aber viel mehr Arbeit macht, schreib das Datagrid neu und besser. Ich bin gerade noch dabei, das VScroll neu zu schreiben (Hallo Werner! :smile:) weil da ‚.Value‘ Integer ist und die 32000 Werte nicht immer ausreichen. Ich hab’s aber noch nicht ganz so wie das Original, nur fast.

Gruß, Rainer