Anderes BIld bei MouseMove

d4kine

Erfahrenes Mitglied
Bild soll bei Gedrückter maustaste bleiben

So, zum dritten mal bearbeite ich das jetzt hier. Diesmal hab ich das problem, dass das Bild bei gedrückter Maustaste solange bleibt, bis ich loslasse. ich hab die datei mal angehangen. teste es mal und drückt auf den Button, bzw haltet ihn gedrückt. ihr werdet sehen, dass das bild "Play 3" (wo das y blau ist) nicht sehr lange zu sehen ist, obwohl man noch die maustaste gedrückt hält. Code ist hier:
Code:
Private Sub Form_Load()
    cmdPlay.Picture = LoadPicture("gfx/play_1.gif")
    End Sub
    
    Private Sub cmdPlay_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    cmdPlay.Picture = LoadPicture("gfx/play_2.gif")
    End Sub
    
    Private Sub cmdPlay_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    cmdPlay.Picture = LoadPicture("gfx/play_3.gif")
    End Sub
    
    Private Sub cmdPlay_Click()
    MsgBox "test"
    End Sub
ach ja, und wie mache ich das, dass wenn ich von dem feld weggehe, dass der das erste bild wieder anzeigt (play_1.gif) MouseStop?
PLZ HELP! ist wichtig leute!
 

Anhänge

  • test.zip
    19,5 KB · Aufrufe: 14
Zuletzt bearbeitet:
Re: Bild soll bei Gedrückter maustaste bleiben

d4kine hat gesagt.:
ach ja, und wie mache ich das, dass wenn ich von dem feld weggehe, dass der das erste bild wieder anzeigt (play_1.gif) MouseStop?
PLZ HELP! ist wichtig leute!
Code:
   Private Sub cmdPlay_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
   cmdPlay.Picture = LoadPicture("gfx/play_1.gif")
   End Sub

Zur ersten Frage:

Ich wüste nicht wie mann Mouse_Move und Mouse_Down miteinander verwenden kann Da wenn man die maus grückt kommt bild 3 une wenn man sie bewegt nummer 2
 
Re: Bild soll bei Gedrückter maustaste bleiben

wenn ich vielleicht mal nachgedacht hätte, wäre ich auch darauf gekomen :) danke für das erste aber zum zweiten bin ich immernoch hilflos. Wie soll ich das machen? Ich möchte es ja so haben:
1. normales bild: play_1.gif
2. MouseOver: play_2.gif
3. MouseDown: play_3.gif
4. MouseUp: play_2.gif
5. Mouse wech: play_1,gif
Hoffe, ihr werdet daraus schlau ;)
 
Zuletzt bearbeitet:
Re: Bild soll bei Gedrückter maustaste bleiben

Also damit das Bild nicht bei MouseDown+MouseMove geändert wird, kannst du in MouseMove den Button abfragen. Wenn Button=0, dann kannst du sicher gehen dass sich die Maus mit losgelassenen Maustasten bewegt:
Code:
Private Sub cmdPlay_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
	If Button = 0 then cmdPlay.Picture = LoadPicture("gfx/play_2.gif")
End Sub
Damit das normale Bild verwendet wird wenn sich die Maus nicht mehr über dem CommandButton befindet, verwendest du einfach Form_MouseMove. Du stellst das Bild also immer auf "Normal", wenn sich die Maus über der Form bewegt.
 
naja, da ich jetzt nicht wirklich schlau draus geworden bin, mach ich das einfach mit 2 bildern. eins normal, ein mousemove. nix mit down und click und so.
trotzdem danke leute
 
Vereinfacht

Ich habs mir jetzt mal einfach gemacht. So funktioniert es wenigstens. Ich schreibe das hier nur, damit andere, die vielleich auch mal das problem haben, geholfen werden kann (obwohl eigentlich jeder selber darauf kommen könnte). Ich habe einfach 3 Images übereinandergelegt und 2 davon deaktiviert. Code hier:

Code:
  Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Image1.Visible = True
  Image2.Visible = False
  Image3.Visible = False
  End Sub
  
  Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Image1.Visible = False
  Image2.Visible = True
  Image3.Visible = False
  End Sub
  
  Private Sub Image2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Image1.Visible = False
  Image2.Visible = False
  Image3.Visible = True
  End Sub
  
  Private Sub Image2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Image1.Visible = False
  Image2.Visible = True
  Image3.Visible = False
  End Sub
 
Die einfachste Lösung, dass das erste Bild erscheint, wenn du dich nicht über dem Button befindest?
Code:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdPlay.Picture = LoadPicture("gfx/play_1.gif")
End Sub


Der Doc!
 
joa, aber der rest des programmes sind ja auch bilder! da sind 2 kleine stellen wo "FORM" ist ^^ Trotzdem danke an alle
 
Ich denke mal, dass alle Bilder zurückgesetzt werden sollen, wenn die Maus über der Form ist, einfach nur alle Rücksetz-Zeilen in die Form_MouseMove rein.


Der Doc!
 

Neue Beiträge

Zurück