Mausposition / erkennung während des Drags

  • VB6

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Gast.

    Mausposition / erkennung während des Drags

    Hiho, hier wieder smacki!

    meine Frage diesmal:

    ich habe mehrere kleine Bilder auf einer Form,

    siehe: hackwarz.wurstachim.de/vb.JPG

    und jetzt starte ich einen Drag vom kleinen Bild in Richtung der Bilderreihe. Wenn nun der DragOver bei der Bilderreiche beginnt, möchte ich den Drag NICHT abbrechen, sondern:

    1. Erkennen, aus welcher Richtung die Maus kommt (hier Norden)
    2. Die Mauszeigerposition (inklusive Drag) in die Richtung, aus der die Maus kam zurückschieben. D.h. der Drag soll die Bildlinie nicht überschreiten können. Immer wenn also ein DragOver über die Bilderreihe stattfindet, soll der Mauszeiger in die Richtung vor die Bildreihe "zurückspringen", aus der er kam.

    Wäre wirklich nett, wenn mir dabei jemand helfen könnte,

    thx,

    smacki

    *Hüstel* Versteh ich nich ganz, muss ich mir nochmal durch den Kopf gehen lassen ...

    Aber zum zurück Verschieben kann ich was sagen, das kannst du hiermit machen :

    Private Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

    desweiteren benötigst du noch das hier :

    Private Declare Function GetMessageExtraInfo Lib "user32.dll" () As Long

    und die Konstanten :

    Private Const MOUSEEVENTF_ABSOLUTE As Long = &H8000

    Private Const MOUSEEVENTF_MOVE As Long = &H1

    um dann die Maus zu bewegen musst du das so aufrufen :

    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, XPosition, YPosition, 0, GetMessageExtraInfo