Infofeld zu Button oder Edit
-
Hi Leute!
ich möchte sobald meine Mauszeiger auf ein bestimmtes Staticfeld zeigt ( ohne gedrückt zu werden),dass ein Infotext angezegit wird!
Ich glaube das kennt jeder! Wenn ich in einer Anwendung auf irgendeinen Button oder Feld zeige erscheint dieses kleine "Dunkelweisse" Infofeld in dem eine kurze Information zu dem Button oder dem Feld steht! Ich hoffe ich habe mich verständlich ausgedrückt!
Genau diese Funktionalität suche ich! Wäre super wenn mir jemand das passende Schlagwort (oder Beispiel) posten könnte! Damit ich jedenfalls schon mal einen Ansatz habe nach dem ich suchen kann!
thx a lot
Sven
-
dieses kleine "Dunkelweisse" Infofeld
Bei mir ist es gelb..
Du meinst bestimmt ToolTips:
http://www.codeguru.com/Cpp/controls/controls/tooltipcontrols/article.php/c2173/
-
Ein einfaches CTooltipCtrl tuts doch sicher auch.
Guck mal, ob du dazu ne Anleitung findest, ich hab das bei mir ziemlich weit in den Basisklassen vergraben.
-
Danke genau das habe ich gesucht! Werde mal testen welches der beiden für mich besser und einfacher ist!
DANKE
Bei mir ist es gelb..
ja aber "hellgelb" also "dunkelweiss"
Sven
-
Ich hab das gerade gestern bei mir in eine dialogfeldbasierte Anwendung eingefügt. Angenommen du willst einen Tooltip für ein Textfeld (IDC_STATIC1) einfügen, dann geht das so:
- CToolTipCtrl m_ToolTip für die Dialogklasse einfügen
- Folgenden Code in OnInitDialog() eintragen:m_ToolTip.Create(this); m_ToolTip.AddTool(GetDlgItem(IDC_STATIC1),"ToolTip");
- Dann erstelle für die Dialogklasse eine Nachrichtenbehandlungsroutine für die Nachricht PreTranslateMessage und füge folgenden Code ein:
if(IsWindow(m_ToolTip.m_hWnd)) { m_ToolTip.RelayEvent(pMsg); }
Für das Textfeld musst du dann noch in den Eigenschaften "Benachrichtigen" aktivieren, damit der Tooltip angezeigt werden kann
-
-
Das funktioniert bei mir irgendwie nicht.
es kommen keine Fehler, aber es kommt auch kein ToolTip wenn ich mit der Maus drüber halte.
Muss man noch irgendwas machen was du nicht beschrieben hast?
//edit: geht, der Dialog war irgendwie im Eimer, hat sich nach ner Fenster-Überlappung auch nicht neu gezeichnet, im neuen Dialog geht es..
-
Ich hab noch diese Zeile:
m_pToolTip->Activate(TRUE);
-
hab im header
class CTab1Dlg : public CDialog { // Konstruktion public: CToolTipCtrl m_ToolTip; .. ... ..
im InitDialog
BOOL CTab1Dlg::OnInitDialog() { CDialog::OnInitDialog(); m_ToolTip.Create(this); m_ToolTip.AddTool(GetDlgItem(IDC_STATIC),"ToolTip"); .. ... ..
und in der PreTranslate
BOOL CTab1Dlg::PreTranslateMessage(MSG* pMsg) { if(IsWindow(m_ToolTip.m_hWnd)) { m_ToolTip.RelayEvent(pMsg); } return CDialog::PreTranslateMessage(pMsg); }
diese sachen gemacht und ganz wichtig !
Für das Textfeld musst du dann noch in den Eigenschaften "Benachrichtigen" aktivieren, damit der Tooltip angezeigt werden kann
Ohne dem geht es nicht!
Sven
-
... noch wer da in dem tread?!?
ich wollte das oben angegebene Beispiel nachvollziehen aber da hat´s was!!
Ich habe die PreTranslateMessage Methode mit dem wizard angelegt(einfügen->Funktion). läuft aber trotzdem nicht, warscheinlich muß ich noch eine eintragung in der message map machen wegen der nachrichtenbehandlung oder?!? wegen der Nachrichtenbehandlung....?!? oder geht das automatisch???danke schonmal,
lg Loop