Maus über Button bewegen
Results 1 to 6 of 6
  1. #1

    Title
    Master
    Join Date
    Mar 2002
    Posts
    158
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Maus über Button bewegen

    Hi!
    Mal schauen ob hier in den Ferien auch was los ist
    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!

  2. #2
    MaxAuthority's Avatar
    Title
    Gewinner des Desktop-Contest 2002
    Join Date
    Feb 2002
    Location
    Wien
    Posts
    833
    Thanks
    0
    Thanked 6 Times in 4 Posts
    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.
    http://vimperator.org - Make Firefox behave like Vim

  3. #3
    RoadRash's Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Location
    Oberwart / Wien
    Posts
    274
    Thanks
    0
    Thanked 0 Times in 0 Posts
    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
    Ceterum censeo, carthaginem esse delendam.

  4. #4

    Title
    Master
    Join Date
    Mar 2002
    Posts
    158
    Thanks
    0
    Thanked 0 Times in 0 Posts
    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??

  5. #5
    RoadRash's Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Location
    Oberwart / Wien
    Posts
    274
    Thanks
    0
    Thanked 0 Times in 0 Posts
    In der Funktion, in der du WM_MOUSEMOVE abfängst, kannst du den Button direkt
    Code:
    ShowWindow(FALSE)
    ausblenden bzw.
    Code:
    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
    Ceterum censeo, carthaginem esse delendam.

  6. #6

    Title
    Master
    Join Date
    Mar 2002
    Posts
    158
    Thanks
    0
    Thanked 0 Times in 0 Posts
    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?

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •