Tooltip in eigener CEdit-Klasse?
-
Hallo,
ich möchte Tooltips in meiner Anwendung nutzen und habe mich dazu auch schon schlau gemacht.
Das Anzeigen von Tooltips im Dialog funktioniert ganz gut, Vorlage war:
http://support.microsoft.com/kb/141758/en-usNun möchte ich aber, dass der Tooltip in mein selbstgeschriebenes Steuerelement wandert (SE basiert auf CEdit). Da ich das nur in diesem SE benötige. Leider funktioniert das einfache Kopieren nicht. Beim Ausführen erhalte ich an dieser Stelle einen Fehler.
void CCheckEdit::SetLimits(double min, double max, double res) { m_Min = min; m_Max = max; m_Res = res; m_pToolTip = new CToolTipCtrl; m_pToolTip->AddTool(this, _T("About Box")); //Debug Assertion Failed m_pToolTip->Activate(TRUE); }
Ich glaube dass es irgendwas mit den Handles geändert werden muss, aber hier kenne ich mich nicht aus.
Viele Grüße
Frank
-
Dein Control ist vermutlich einfach noch nicht erzeugt.
m_hWnd ist noch NULL!
-
Nein das Steuerelement hat schon ein Handle hwnd ist nicht NULL.
Die Funktion verlangt aber ein CWnd, kann das der Fehler sein?
Wie bekommen ich das richtige Handle?
-
Deine abgeleitete Klasse ist sehr wohl ein CWnd!
Was ist das für ein ASSERT, welche Zeile? Was steht da für ein Code?
-
Ok ich habe den Fehler gefunden, wahr wohl doch gestern etwas spät für mich
Danke für deine Hilfe!Noch eine andere Frage: kann ich das Tooltip irgendwie konfigurieren?
Also ich möchte, dass es sofort angezeigt wird und auch solang, wie Cursor bzw Maus im/bzw auf dem Feld sind
-
Wie wäre es mit etwas MSDN Doku lesen?
http://msdn.microsoft.com/en-us/library/301zh42h(VS.80).aspx
SetDelayTime
Sets the initial, pop-up, and reshow durations for a tool tip control.
-
Ok danke kann die Zeiten nun einstellen.
Nach der gesetzten TTDT_AUTOPOP-Zeit erscheint das Tooltip nie wieder ebenso, wenn der Cursor einmal im Textfeld war.
wie kann ich das Tooltip dann wieder reaktivieren?
-
Nur wenn zwischenzeitlich das Control verlassen wurde.
Dann müsste der Tootip auch wieder erscheinen.
-
Nein das Tooltip erschein dann nicht wieder.