ToolTip wie ?
-
Ich habe in meinen MainFrame-Fenster eine Toolbar eingerichtet, und möchte nun
Tooltips neben den Schaltflächen erscheinen lassen, sofern sich der Zeiger über
die Schaltflächen bewegt. Folgendes habe ich versucht:class CMainFrame ...
CToolTipCtrl tcrl;
CMainFrame::OnCreate ...
CButton* btn = (CButton*)GetDlgItem(ID_BUTTON32791);
if ( btn == 0 ) MessageBox("Kein Button ...");
tcrl.Create(this);
tcrl.AddTool(btn, "MeinHilfeText...", 0, 0);ID_BUTTON32791 ist die ID von der Schaltfläche.
Kein Button ... erscheint, und AddTool stürtzt ab (weil btn == 0).
Wie soll man es machen ?
-
Das ist unnötig. Toolbars erzeugen automatisch Tooltips. Du musst nur einen String für die entsprechende Command ID hinterlegen. Dieser ist zweigeteilt. Ein Langtext für den Statusbar und ein Kurztext für den Tooltip.
Text für Statusbar\nText für Tooltip
-
Wie hinterlege ich einen String für die Command ID ?
-
Das ist ein String Eintrag in den String-Ressourcen mit eben der ID.
Im Editor für den Toolbar im Visual-Studio kannst Du den Command-String gleich mit angeben in den Properties.
-
Geht es auch bei anderen Steuerelementen ? zB. bei Radio-Buttons ?
-
Nur Toolbars haben diesen eingebauten Tooltip Support.
Lies einfach mal die Doku zum Tooltip Support in dr MSDN
CWnd::EnableToolTips
http://msdn.microsoft.com/en-us/library/sa23xtsw.aspxDa ist auch ein Beispiel für ein Edit Control drin...
-
Nochmals zu meinem ersten Beitrag, wieso is btn == 0 ? Bekommt man nirgends
einen gültigen Zeiger auf ID_BUTTON... ?
-
GeorgC++ schrieb:
Nochmals zu meinem ersten Beitrag, wieso is btn == 0 ? Bekommt man nirgends
einen gültigen Zeiger auf ID_BUTTON... ?Weil der Toolbar kene Buttons erzeugt. Er stellt Buttons dar, aber er benutzt kene CButton Fenster! Er selbst ist nur ein Fenster. Schau Dir das doch im Spy++ an.