<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ToolTips verwenden]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne in meinem Programm ToolTips verwenden (für drei Static-Controls). Ich habe mir jetzt einige Seiten dazu durchgelesen, bin aber nicht so wirklich schlau daraus geworden!<br />
Also ich habe jetzt die Funktion OnToolTipNotify() in meine Dialogklasse eingefügt und außerdem den Aufruf</p>
<pre><code>EnableToolTips(TRUE);
</code></pre>
<p>in der OnInitDialog-Funktion hinzugefügt.</p>
<p>Was muss ich jetzt in der OnToolTipNotify-Funktion genau machen, damit ToolTips angezeigt werden? Ich habe mal etwas Code aus der MSDN rauskopiert, aber es passiert nichts...</p>
<pre><code>BOOL CStartdialog3Dlg::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{
	AfxMessageBox(&quot;drin...!&quot;);
	TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
    UINT nID =pNMHDR-&gt;idFrom;
    if (pTTT-&gt;uFlags &amp; TTF_IDISHWND)
    {
        // idFrom ist der HWND des Tools
        nID = ::GetDlgCtrlID((HWND)nID);
        if(nID)
        {
			pTTT-&gt;lpszText = MAKEINTRESOURCE(nID);
            pTTT-&gt;hinst = AfxGetResourceHandle();
            return(TRUE);
        }
    }
    return(FALSE);

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/185883/tooltips-verwenden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 13:59:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185883.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Jul 2007 13:19:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ToolTips verwenden on Mon, 02 Jul 2007 13:19:27 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne in meinem Programm ToolTips verwenden (für drei Static-Controls). Ich habe mir jetzt einige Seiten dazu durchgelesen, bin aber nicht so wirklich schlau daraus geworden!<br />
Also ich habe jetzt die Funktion OnToolTipNotify() in meine Dialogklasse eingefügt und außerdem den Aufruf</p>
<pre><code>EnableToolTips(TRUE);
</code></pre>
<p>in der OnInitDialog-Funktion hinzugefügt.</p>
<p>Was muss ich jetzt in der OnToolTipNotify-Funktion genau machen, damit ToolTips angezeigt werden? Ich habe mal etwas Code aus der MSDN rauskopiert, aber es passiert nichts...</p>
<pre><code>BOOL CStartdialog3Dlg::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{
	AfxMessageBox(&quot;drin...!&quot;);
	TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
    UINT nID =pNMHDR-&gt;idFrom;
    if (pTTT-&gt;uFlags &amp; TTF_IDISHWND)
    {
        // idFrom ist der HWND des Tools
        nID = ::GetDlgCtrlID((HWND)nID);
        if(nID)
        {
			pTTT-&gt;lpszText = MAKEINTRESOURCE(nID);
            pTTT-&gt;hinst = AfxGetResourceHandle();
            return(TRUE);
        }
    }
    return(FALSE);

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1316863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316863</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Mon, 02 Jul 2007 13:19:27 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Mon, 02 Jul 2007 13:26:18 GMT]]></title><description><![CDATA[<p>Schau dir das mal an: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-164246.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-164246.html</a> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1316866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316866</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Mon, 02 Jul 2007 13:26:18 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Mon, 02 Jul 2007 13:41:26 GMT]]></title><description><![CDATA[<p>Erstmal vielen Dank!<br />
Ich habs dann mal so wie im Link beschrieben versucht, aber es tauchen immer noch keine Tooltips auf <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Mein Code:</p>
<pre><code>// Tooltips anlegen
	m_ttipctrl.Create(this); 
	m_ttipctrl.AddTool(GetDlgItem(IDC_STATIC_VERSCHIEBEN),&quot;Verschieben&quot;); 
	m_ttipctrl.AddTool(GetDlgItem(IDC_STATIC_GROESSE_AENDERN),&quot;Größe ändern&quot;); 
	m_ttipctrl.AddTool(GetDlgItem(IDC_STATIC_BEENDEN),&quot;Programm beenden&quot;);
	m_ttipctrl.Activate(TRUE);

	CDialog::OnInitDialog();
</code></pre>
<pre><code>BOOL CStartdialog3Dlg::PreTranslateMessage(MSG* pMsg) 
{
	if (m_ttipctrl.GetSafeHwnd()!=NULL &amp;&amp; 
    pMsg-&gt;message&gt;=WM_MOUSEFIRST &amp;&amp; pMsg-&gt;message&lt;=WM_MOUSELAST) 
    { 
		//AfxMessageBox(&quot;ToolTip!&quot;);
        m_ttipctrl.RelayEvent(pMsg); 
    }
    return CDialog::PreTranslateMessage(pMsg);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1316877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316877</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Mon, 02 Jul 2007 13:41:26 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Mon, 02 Jul 2007 13:55:43 GMT]]></title><description><![CDATA[<p>Lexaja schrieb:</p>
<blockquote>
<p>...(für drei Static-Controls)...</p>
</blockquote>
<p>afaik ist es nicht moeglich statics mit einem tooltip zu versehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1316887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316887</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Mon, 02 Jul 2007 13:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Mon, 02 Jul 2007 13:58:01 GMT]]></title><description><![CDATA[<p>Auch da hat die FAQ was: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-169939.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-169939.html</a> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1316888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316888</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Mon, 02 Jul 2007 13:58:01 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Mon, 02 Jul 2007 14:05:11 GMT]]></title><description><![CDATA[<p>Hallihallo!</p>
<p>Danke schön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Ich wollte gerade schreiben, dass ich die Lösung gefunden habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Wenn ich SS_NOTIFY hinzufüge, funktioniert alles prima!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1316893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316893</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Mon, 02 Jul 2007 14:05:11 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Mon, 02 Jul 2007 14:14:49 GMT]]></title><description><![CDATA[<p>Ups, jetzt hab ich aber doch noch ein Problem.<br />
Die drei Static-Controls sind runde Regionen, in denen der Benutzer den Dialog vergrößern, verschieben oder beenden kann. Mit</p>
<pre><code>UINT CStartdialog3Dlg::OnNcHitTest(CPoint point)
</code></pre>
<p>wird die Position des Mauszeigers abgefragt. Befindet er sich in der entsprechenden Region, wird eine ID zurückgegeben, die die auszuführende Aktion beinhaltet.<br />
Jetzt kann ich aber nicht mehr in meine Region klicken (also es passiert nichts). Ich vermute mal, dass die Nachricht jetzt schon vorher abgefangen wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1316906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316906</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Mon, 02 Jul 2007 14:14:49 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Mon, 02 Jul 2007 14:46:26 GMT]]></title><description><![CDATA[<p>Wenn SS_NOTIFY gesetzt wird, dann wird auch die Mausnachricht an das Static gesendet und nicht mehr transparent an das parent weitergeleitet!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1316937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316937</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 02 Jul 2007 14:46:26 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Tue, 03 Jul 2007 06:35:47 GMT]]></title><description><![CDATA[<p>Kann ich die Mausnachricht denn wieder zurück an das Parent geben?<br />
Meine OnNcHitTest-Methode sieht so aus:</p>
<pre><code>UINT CStartdialog3Dlg::OnNcHitTest(CPoint point)
{
	ScreenToClient(&amp;point);

	// Eckpunkte des Dialogs erzeugen
	CPoint d1(offset, runden(0.1 * (double)offset));
	CPoint d2(2 * offset, runden(0.1 * (double)offset));
	CPoint d0(d1.x - hilfskante, d1.y + hilfskante);
	CPoint d3(d2.x + hilfskante, d2.y + hilfskante);
	CPoint d4(d3.x, d3.y + kantenlaenge);
	CPoint d5(d2.x, d4.y + hilfskante);
	CPoint d6(d1.x, d5.y);
	CPoint d7(d0.x, d4.y);

	// Regionen holen
	CRgn rgnDialogZiehen, rgnDialogVergroessern, rgnBeenden;
	CRect rect;
	GetClientRect(&amp;rect);
	rgnDialogZiehen.CreateEllipticRgn(d1.x - runden(0.1 * (double)offset), 0, d1.x + runden(0.1 * (double)offset), d1.y + runden(0.1 * (double)offset));
	rgnDialogVergroessern.CreateEllipticRgn(d5.x - runden(0.1 * (double)offset), d5.y - runden(0.1 * (double)offset), d5.x + runden(0.1 * (double)offset), d5.y + runden(0.1 * (double)offset));
	rgnBeenden.CreateEllipticRgn(d2.x - runden(0.1 * (double)offset), d2.y - runden(0.1 * (double)offset), d2.x + runden(0.1 * (double)offset), d2.y + runden(0.1 * (double)offset));

	if(rgnDialogZiehen.PtInRegion(point))
	{
		return HTCAPTION;
	}

	if(rgnDialogVergroessern.PtInRegion(point))
	{
		return HTBOTTOMRIGHT;
	}

	if(rgnBeenden.PtInRegion(point))
	{
		return HTSYSMENU;
	}

	return CDialog::OnNcHitTest(point);
}
</code></pre>
<p>Hab ich das jetzt richtig verstanden, dass HTCAPTION, HTBOTTOMRIGHT oder HTSYSMENU dann an das Static weitergeleitet wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317269</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Tue, 03 Jul 2007 06:35:47 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Tue, 03 Jul 2007 06:44:04 GMT]]></title><description><![CDATA[<p>Richtig und wenn Du HTTRANSPARENT returnierst gehen die Messages an das parent weiter.</p>
<p>Bleibt für mich die Frage:<br />
Warum benutzt Du überhaupt CStatic und nicht ein CWnd und bist frei von aller Vorbelastung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317273</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 03 Jul 2007 06:44:04 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Tue, 03 Jul 2007 06:56:13 GMT]]></title><description><![CDATA[<p>Wenn ich also die drei Statics einfach als CWnd anlege, müsste das einfach so ohne weitere Behandlungen gehen mit den Tooltips?<br />
Dann erstelle ich mir am besten eine eigene von CWnd abgeleitete Klasse, oder? Die OnPaint-Methode meiner Static-Klasse kann ich ja ohneweiteres übernehmen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317275</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Tue, 03 Jul 2007 06:56:13 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Tue, 03 Jul 2007 06:59:16 GMT]]></title><description><![CDATA[<p>Ja sicher! Wenn Du auch noch OnPaint selber machst, frage ich mich wirklich warum Du überhaupt auf CStatic zurückgreifst.</p>
<p>Das Problem ist einfach: Was möchtest Du?<br />
Das Control muss die Mausmessages bekommen um Tooltips anzeigen zu können. Andernfalls müsstest Du einfach im Parent die Tooltips hinzufügen und dort AddTool verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317278</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 03 Jul 2007 06:59:16 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Tue, 03 Jul 2007 07:58:40 GMT]]></title><description><![CDATA[<p>Am Anfang dachte ich, ein Static wäre ja super, um kleine Icons darin anzuzeigen.<br />
Seitdem ich aber aufgrund einiger Fehler und Probleme alles in der OnPaint-Methode selbst zeichne, kann ich genausogut CWnd-Objekte nehmen, das stimmt. Hab ich jetzt auch mal gemacht, aber es funktioniert immer noch nicht so einfach wie ich dachte!<br />
Also ich hab jetzt also ein CWnd-Objekt in meinem Dialog. In der OnInitDialog-Methode erstelle ich mein CWnd-Fenster, aktiviere die ToolTips und füge einen ToolTip für meine CWnd hinzu!</p>
<pre><code>ecke_verschieben-&gt;Create(NULL, _T(&quot;&quot;), WS_CHILD | WS_VISIBLE, rcVerschieben, this, IDC_ECKE_VERSCHIEBEN);
m_ttipctrl.Create(this);
m_ttipctrl.AddTool(GetDlgItem(IDC_ECKE_VERSCHIEBEN), &quot;Verschieben&quot;);
	m_ttipctrl.Activate(TRUE);
</code></pre>
<p>Dann habe ich noch folgende Methode implementiert:</p>
<pre><code>BOOL CStartdialog3Dlg::PreTranslateMessage(MSG* pMsg) 
{
	if (m_ttipctrl.GetSafeHwnd()!= NULL &amp;&amp; pMsg-&gt;message == WM_MOUSEMOVE) 
    { 
        m_ttipctrl.RelayEvent(pMsg);
    }
    return CDialog::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Jetzt werden mir ToolTips angezeigt, aber ich kann wiederum meinen Dialog nicht verschieben, da ich nie in die Methode NCHitTest meines Dialogs gelange, wenn der Mauszeiger über meinem CWnd-Objekt ist!<br />
Gebe ich in der Methode NcHitTest vom CWnd-Objekt HTTRANSPARENT zurück, kann ich meinen Dialog wieder verschieben, aber bekomme keine ToolTips mehr.<br />
Wo genau muss ich jetzt noch abfangen, dass ToolTips angezeigt werden? An welcher Stelle und mit welcher Methode? Muss ich das CToolTip-Objekt meinem CWnd zufügen?</p>
<p>EDIT: Hab einfach mal probiert, die PreTranslateMessage-Funktion meines CWnd auch zu überschreiben und HTTRANSPARENT zurückzugeben, nutzt aber leider nichts!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317293</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Tue, 03 Jul 2007 07:58:40 GMT</pubDate></item><item><title><![CDATA[Reply to ToolTips verwenden on Tue, 03 Jul 2007 10:08:27 GMT]]></title><description><![CDATA[<p>Für alle die es interessiert:<br />
Ich habe nochmal ein bisschen rumgegoggelt und gesucht usw. und bin dabei auf das Projekt &quot;NewLabel&quot; bei Codeguru gestoßen. In dem Projekt ist eine Klasse CControlToolTip enthalten, die man wunderbar benutzen kann, um für Static-Controls ToolTips zu erzeugen!<br />
Einfach eine Variable vom Typ CControlToolTip in der CStatic-Klasse anlegen, alle gewünschten Funktionen einstellen und schon erscheint ein schöner ToolTip auf dem Bildschirm <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317373</guid><dc:creator><![CDATA[Lexaja]]></dc:creator><pubDate>Tue, 03 Jul 2007 10:08:27 GMT</pubDate></item></channel></rss>