OnMouseOver bei Button mit Bitmap?
-
Hi Leute.
Ich habe in meinem Projekt (dialogfeldbasierend) einige Buttons, die ich mit jeweils einer Bitmap versehen habe. Nun möchte ich einen Infotext ausgeben, wenn die Maus über dem Button ist.
Laut MFC-Assi kann ich aber bei einem Button nur BN_CLICKED und BN_DOUBLECLICK auswählen. Wie kann ich denn das OnMouseOver-Ereignis einbinden? Beim Dialog selbst lässt sich ja WM_MOUSEMOVE einbinden...ansonsten weiß ich nciht weiter...Gruß, kalaha
-
Hallo,
du bist auf der falschen Spur. In MFC gibt es bereits eine Klasse, die "Tooltips" repräsentiert:
CToolTipCtrl
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_ctooltipctrl.aspMan muß allerdings ein paar wichtige Schritte beachten, damit es wie gewünscht funktioniert. Ein Beispiel, wie man dem "About"-Dialog einen solchen ToolTip für den OK-Button hinzufügt, gibt es hier
http://support.microsoft.com/?kbid=141758
das sollte sich auf eine dialogfeldbasierende Anwendung problemlos übertragen lassen.
MfG
-
Danke für deine Hilfe

Mittlerweile bin ich schon auf Tooltip gekommen, habe auch auf die Funktion von PreTranslateMessage(MSG* pMsg) zurückgegriffen. Zwar meckert mir der Compiler nicht, aber ich habe noch nicht einen funktionierenden Tooltip erstellen können.
Bislang habe ich folgenden Code in der PreTranslateMessage:CToolTipCtrl Tips; Tips.Create(this); Tips.AddTool(GetDlgItem(IDC_THE_CONTROL),"BlaBlaBla"); Tips.Activate(TRUE);jedoch wie gesagt ohne erfolg. Habe den Tip bekommen das über Membervariablen von Tooltip zu machen
if(pMsg->message== WM_LBUTTONDOWN || pMsg->message== WM_LBUTTONUP || pMsg->message== WM_MOUSEMOVE) Tips.RelayEvent(pMsg); return CDialog::PreTranslateMessage(pMsg);habe dies aber noch nicht testen können....in die MSDN habe ich auch nur einen kurzen Blick gewagt, hoffe ich habe morgen (oder heute?) mehr zeit.
Vielen Dank für die Links

Gruß, kalaha
-
ja, du solltest Member-Variablen nehmen, denn in deinem ersten Versuch in PreTranslateMessage ist der scope (Gültigkeitsbereich) der Tooltip-Variable nur auf PreTranslateMessage beschränkt, danach ist der erstellte Tooltip schon wieder zerstört, er muß aber auch nach PreTranslateMessage noch existieren-->Member-Variable geeigneter.
MfG