Nachricht für Mausposition
-
Hi Experten!
Ich suche nach einer Nachricht mit der Steuerelemente ansagen können, dass die Maus jetzt gerade über ihnen positioniert ist.
Babei geht es mir nicht darum "XP-stylish" schöne bunte Knöpfe im Rollover Stil zu bauen, sondern ich möchte dem User Infos zu dem Steuerelement anzeigen, auf dem die Maus gerade positioniert ist
Leider finde ich nur die Nachrichten "BN_CLICKED" und "BN_DOUBLECLICKED".
Habt Ihr vielleicht eine Idee, wie man sowas realisieren kann?Thx in voraus
Theo
-
nimm einfach ein tooltip control. das hakt sich in den button ein. dann kriegst du so eine gelbe blase
-
Ok, das war schon mal eine guter Gedanke, scheint laut FAQ auch nicht allzu schwer für einen Newbie zu sein. !!Thx!!
Falls jemand darüberhinaus noch eine Idee hat wie ich's so hinbekomme, dass der Hilfstext in meiner Infoleiste direkt im Dialogfenster erscheint, wär's trotzdem nicht schlecht
.
Was ich mir einmal in den Kopf gesetzt habe...Ok, Thx im voraus!
Theo
-
Ich suche nach einer Nachricht mit der Steuerelemente ansagen können, dass die Maus jetzt gerade über ihnen positioniert ist.
Diese Aussage ist glaube ich falsch, du musst viel eher die Mausposition abfangen und prüfen ob da ein Steuerelement unter ist.
Die Mausposition kannst du ja so bald sie bewegt wurde mit WM_MOUSEMOVE abfangen und dann musst du eigentlich nur noch überprüfen, ob da ein Steuerelement ist, wo sich die Maus gerade befindet. Allerdings kann ich dir kein Beispiel für diese Methode geben.
-
Habe jetzt folgenden Code für die Aufgabe verwendet:
BOOL CMainDlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_MOUSEMOVE && pMsg->hwnd == GetDlgItem(IDOK)->m_hWnd) { m_strInfoString = "Das ist der OK Button"; UpdateData(FALSE); } else { m_strInfoString = ""; UpdateData(FALSE); } return CWnd::PreTranslateMessage(pMsg); }
Und: Es geht! Die Infos werden brav in meiner Infoleiste angezeigt, wenn ich mit der Maus über mein Steuerelement gehe!
Aaaaber: Die übrigen Steuerelemente in meinem Dialogfeld wie Check Buttons usw. reagieren jetzt nicht mehr so wie sie sollen.Beim Klick auf eine Checkbox z.B. erscheint das Häkchen nur ganz kurz und ist gleich wieder weg...
Weiss jemand Rat? Thx!Theo
-
Hm, peinlich. Hab's selbst schon gefunden. Mein "UpdateData(FALSE);" war's. Mit "SetWindowText();" sieht's schon besser aus.
Trotzdem danke für Eure Unterstützung!
Theo