Hi!
Mal schauen ob hier in den Ferien auch was los ist:D
Schau mir gerade (gezwungenermassen) ein wenig Visual C++ an, blick aber irgendwie nicht durch. Ich möchte einen Text anzeigen, wenn ich mit der Maus über einen Button fahre. Aber wie stelle ich überhaupt fest, dass ich über dem Button bin mit der Maus?? Der Button selber hat ja nur die Ereignisse Clicked bzw. DoubleClicked? Wäre für eine Antwort auf diese (wahrscheinlich sehr dumme ) Anfängerfrage sehr dankbar!
Maus über Button bewegen
-
-
das simpelste wäre einfach, wenn du alle 100ms oder die mouse position mit GetCurPos() checkst, aber das ist recht ressouren lastig.
ansonsten kannst du glaub ich einen eigenen message map eintrag machen, frag mich aber nicht genau wie.
-
Die richtige Alternative wäre:
Eigene Klasse machen, die von CButton abgeleitet ist und dann dort auf die Nachricht WM_MOUSEMOVE (bin mir ziemlich sicher, aber nicht 100 %ig nehmen) und dann in einem Dialog einen Button einfügen und den vom Typ der eigenen Klasse machen.
und nicht zu vergessen:
In der Nachrichtenbehandlungsroutine mittels CToolTip den Text anzeigen...Würde sagen, du schaust auf
http://www.codeguru.com/buttonctrl/index.shtml
was es da alles gibt.HTH
RoadRash
-
Vielen Dank für eure Hilfe! Aber irgendwie blick ich noch nicht ganz durch. Ich erzeuge eine eigene Klasse abgeleitet von CButton, erzeuge dann einen neuen Button und verbinde ihn mit einer Membervariable vom Typ meiner Klasse. Jetzt hab ich noch einen Text, der verschwinden soll, wenn ich über den Button streife. In der Funktion für die Nachricht WM_MOUSEMOVE schreib ich dann GetDlgItem(IDC_MYTEXT)->ShowWindow(false). Folge: Das Programm stürzt ab wenn ich über den Button fahre (eine MessageBox aufzumachen funktioniert ohne Probleme). Was mache ich jetzt schon wieder falsch??:confused:
-
In der Funktion, in der du WM_MOUSEMOVE abfängst, kannst du den Button direkt
ausblenden bzw.
, da du im Nachrichten-Handler des Buttons-Objekts des Buttons bist (<= hoffe der Satz ist nicht zu verwirrend).
Ansonsten kannst mir deinen Source ja mal mailen roadrash@a1.net und ich schau ihn mir an...
HTH
-
das hätt ich glaub ich schon verstanden, aber ich will einen Text ausblenden, der nur Bestandteil meines "Hauptfensters" ist. Da kann ich ja nicht so einfach zugreifen, oder?
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!