Maus über Button bewegen

  • 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 :rolleyes: ) Anfängerfrage sehr dankbar!

  • 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

    Code
    1. ShowWindow(FALSE)

    ausblenden bzw.

    Code
    1. this->ShowWindow(FALSE)

    , 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