<?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[Wie erstelle ich ein ToolTip Fenster richtig]]></title><description><![CDATA[<p>Also ich bekomme es echt nicht hin. Ich habe hier einen Listview mit einigen Elementen für die möchte ich Tooltips anzeigen. Also soweit ich da in der MSDN durchblicke erzeuge ich ein extra Fenster für Tooltips, etwa so:</p>
<pre><code class="language-cpp">HWND Create_ToolTipWnd(void){

	DWORD			style;
	HWND 			TT;

	style = WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP;
	TT = CreateWindowEx(0, TOOLTIPS_CLASS, 0, style, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hHauptfenster, 0, hInstance, 0);	//hHauptfenster + hInstance wurden vorher schon vergeben
	SetWindowPos(TT, HWND_TOPMOST,0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
	SendMessage(TT, TTM_ACTIVATE, TRUE, 0);
	return TT;
}
</code></pre>
<p>so jetzt möchte ich das mein Listviewfenster Tooltips anzeigen kann, damm muss ich irgendwie was machen und jetzt hängt es bei mit</p>
<pre><code class="language-cpp">void RegisterToolTipWindow(HWND hWnd){

	TOOLINFO		ti;

	memset(&amp;ti, 0, sizeof(ti));
	ti.cbSize = sizeof(ti); 
//	ti.uFlags = ?;
	ti.hwnd = hWnd;						//mein Listviewfenster
//	ti.uId = ?;
//	ti.rect = ?;
//	ti.hinst = ?;
	ti.lpszText = LPSTR_TEXTCALLBACK; 			//erhält Text bei : TTN_NEEDTEXT
	SendMessage(hToolTips, TTM_ADDTOOL, 0, &amp;ti);
}
</code></pre>
<p>Also ich peil das nicht so ganz, ich muss doch nicht etws für jeden Item im Listview einen Tooltip hinzufügen, kann mir da bitte mal jemand helfen, ich sitz hier schon ewig dran, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211581/wie-erstelle-ich-ein-tooltip-fenster-richtig</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 05:23:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211581.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Apr 2008 18:13:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie erstelle ich ein ToolTip Fenster richtig on Thu, 24 Apr 2008 18:13:47 GMT]]></title><description><![CDATA[<p>Also ich bekomme es echt nicht hin. Ich habe hier einen Listview mit einigen Elementen für die möchte ich Tooltips anzeigen. Also soweit ich da in der MSDN durchblicke erzeuge ich ein extra Fenster für Tooltips, etwa so:</p>
<pre><code class="language-cpp">HWND Create_ToolTipWnd(void){

	DWORD			style;
	HWND 			TT;

	style = WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP;
	TT = CreateWindowEx(0, TOOLTIPS_CLASS, 0, style, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hHauptfenster, 0, hInstance, 0);	//hHauptfenster + hInstance wurden vorher schon vergeben
	SetWindowPos(TT, HWND_TOPMOST,0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
	SendMessage(TT, TTM_ACTIVATE, TRUE, 0);
	return TT;
}
</code></pre>
<p>so jetzt möchte ich das mein Listviewfenster Tooltips anzeigen kann, damm muss ich irgendwie was machen und jetzt hängt es bei mit</p>
<pre><code class="language-cpp">void RegisterToolTipWindow(HWND hWnd){

	TOOLINFO		ti;

	memset(&amp;ti, 0, sizeof(ti));
	ti.cbSize = sizeof(ti); 
//	ti.uFlags = ?;
	ti.hwnd = hWnd;						//mein Listviewfenster
//	ti.uId = ?;
//	ti.rect = ?;
//	ti.hinst = ?;
	ti.lpszText = LPSTR_TEXTCALLBACK; 			//erhält Text bei : TTN_NEEDTEXT
	SendMessage(hToolTips, TTM_ADDTOOL, 0, &amp;ti);
}
</code></pre>
<p>Also ich peil das nicht so ganz, ich muss doch nicht etws für jeden Item im Listview einen Tooltip hinzufügen, kann mir da bitte mal jemand helfen, ich sitz hier schon ewig dran, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1497711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1497711</guid><dc:creator><![CDATA[desperate progman]]></dc:creator><pubDate>Thu, 24 Apr 2008 18:13:47 GMT</pubDate></item><item><title><![CDATA[Reply to Wie erstelle ich ein ToolTip Fenster richtig on Fri, 25 Apr 2008 05:49:52 GMT]]></title><description><![CDATA[<p>Du benötigst nur einen Tooltip für das Control.<br />
Wenn jetzt der Tooltip ausgelöst wird, dan erhälst Du einen WM_NOTIFY Nachricht mit TTN_NEEDTEXT, diese musst Du beantworten.<br />
<a href="http://msdn2.microsoft.com/en-us/library/bb760293(VS.85).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/bb760293(VS.85).aspx</a></p>
<p>Ansonten steht in der MSDN wie immer alles <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 />
<a href="http://msdn2.microsoft.com/en-us/library/bb760252(VS.85).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/bb760252(VS.85).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1497882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1497882</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 25 Apr 2008 05:49:52 GMT</pubDate></item><item><title><![CDATA[Reply to Wie erstelle ich ein ToolTip Fenster richtig on Fri, 25 Apr 2008 06:17:54 GMT]]></title><description><![CDATA[<p>Danke für die Antwort, leider hilft mir das nur bedingt weiter da ich immer noch nicht weiss wie ich das Tooltip Fenster mit meinem Listview Childfenster verknüpfe. Das Beispiel in der MSDN zeigt wie das Tooltip Fenster mit einer Control verknüpft wird, aber ich habe für mein Listview Childfenster keine Control ID, dasmit dem &quot;TTN_NEEDTEXT&quot; habe ich soweit vertanden und denke daß ich es auch umsetzen kann wenn ich mal das Tooltipfenster mit meinem Listview <em>verbunden</em> habe. Könntest du mir vieleicht noch saen wie ich die TOOLINFO Struktur zu initialisieren habe um diese Verknüpfung herzustellen, danke schon mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1497889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1497889</guid><dc:creator><![CDATA[desperate progman]]></dc:creator><pubDate>Fri, 25 Apr 2008 06:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie erstelle ich ein ToolTip Fenster richtig on Fri, 25 Apr 2008 06:28:59 GMT]]></title><description><![CDATA[<p>1. Hat jedes Control (außer Top-Level Fenstern) eine Control ID.<br />
2. Genügt das Handle vollkommen. Schau Dir bitte das erste Tool-Snippet bei dem Sample an, da wird auch mit Addtool ein HWND verbunden: <strong>Creating a ToolTip for a Control</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1497891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1497891</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 25 Apr 2008 06:28:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie erstelle ich ein ToolTip Fenster richtig on Sat, 26 Apr 2008 09:18:03 GMT]]></title><description><![CDATA[<p>Also, soweit bin ich nun gekommen mit meinen Tooltips im Listview Fenster.<br />
Voraussetungen: LV-Fenster wurde gesubclassed, TT-Fenster erzeugt, LV-Fenster dem TT-Fenster zugeordnet. Mit dem Code weiter unten sind folgende Funktionen realisiert:<br />
- es erscheint eine Tooltipanzeige, wenn sich die Maus über einen Item/Subitem befindet<br />
- eine eventuell vorhandene Anzeige wird ausgeblendet, wenn die Maus das LV Fenster verlässt<br />
- eine eventuell vorhandene Anzeige wird ausgeblendet, wenn sich die Maus nicht über eine Item/Subitem befindet<br />
- ein Positionstracking wird nur dann vorgenommen, wenn sich ein Item- oder Subitemindex geändert hat</p>
<p>Fehlende Funktionen:<br />
- der TT wird sofort eingeblendet, jedoch soll er erst 1 Sekunde nach verharren der Maus über eine Item eingeblendet werden.<br />
- der TT wird nicht ausgeblendet wenn sich die Maus länger als 5 Sekunden nicht bewegt</p>
<p>Wie kann ich nun diese noch fehlenden Funktionen realisieren? Hier erstmal der Code:</p>
<pre><code class="language-cpp">TOOLINFO		ti;
static boolean		mouse_out = TRUE;
static int			Item = -1, SubItem = -1;

/*
==============================================
ein Tolltipfenster wird zugeordnet
==============================================
*/
void ToolTips_RegisterWindow(HWND hWnd){

	memset(&amp;ti, 0, sizeof(ti));
	ti.cbSize = sizeof(TOOLINFO);
	ti.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
	ti.hwnd = hWnd;
	ti.uId = (UINT_PTR)hWnd;
	SendMessage(wnd.ToolTips, TTM_ADDTOOL, 0, (LPARAM)&amp;ti);		//wnd.ToolTips wurde vorher erstellt
}

/*
==============================================
das Listview Childfenster wurde vorher ge-subclassed
==============================================
*/
LRESULT CALLBACK Subclassed_Listview(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){

	switch(message){
		case WM_MOUSELEAVE:{
			SendMessage(wnd.ToolTips, TTM_TRACKACTIVATE, (WPARAM)FALSE, (LPARAM)&amp;ti);
			mouse_out = TRUE;
			break;
		}
		case WM_MOUSEMOVE:{
			char			buffer[128];
			LVHITTESTINFO		ht = {0};

			if(mouse_out == TRUE){
				TRACKMOUSEEVENT	tme;
				tme.cbSize = sizeof(tme);
				tme.hwndTrack = hWnd;
				tme.dwFlags = TME_LEAVE;
				_TrackMouseEvent(&amp;tme);
				SendMessage(wnd.ToolTips, TTM_TRACKACTIVATE, (WPARAM)TRUE, (LPARAM)&amp;ti);
				mouse_out = FALSE;
			}
			ht.pt.x = GET_X_LPARAM(lParam);
			ht.pt.y = GET_Y_LPARAM(lParam);
			ListView_SubItemHitTest(hWnd, &amp;ht);
			if(((Item != ht.iItem) || (SubItem != ht.iSubItem)) &amp;&amp; (ht.iItem != -1) &amp;&amp; (ht.iSubItem != -1)){
				sprintf(buffer, &quot;Item: %i\nSubitem: %i&quot;, ht.iItem, ht.iSubItem);					//Multiline-Tooltip
				ti.lpszText = buffer;
				SendMessage(wnd.ToolTips, TTM_SETMAXTIPWIDTH, (WPARAM)0, (LPARAM)200);		//aktiviert Multiline-Tooltip
				SendMessage(wnd.ToolTips, TTM_SETTOOLINFO, 0, (LPARAM)&amp;ti);
				ClientToScreen(hWnd, &amp;ht.pt);
				SendMessage(wnd.ToolTips, TTM_TRACKPOSITION, 0, (LPARAM)MAKELONG(ht.pt.x + 10, ht.pt.y + 20));
			}else if ((ht.iItem == -1) || (ht.iSubItem == -1)){								//keine Items -&gt; keine Anzeige
				ti.lpszText = NULL;
				SendMessage(wnd.ToolTips, TTM_SETTOOLINFO, 0, (LPARAM)&amp;ti);
			}
			Item = ht.iItem;
			SubItem = ht.iSubItem;
			break;
		}
	}
	return CallWindowProc(OriginalMainWndProc, hWnd, message, wParam, lParam);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1498391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1498391</guid><dc:creator><![CDATA[desperate progman]]></dc:creator><pubDate>Sat, 26 Apr 2008 09:18:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wie erstelle ich ein ToolTip Fenster richtig on Sat, 26 Apr 2008 13:06:10 GMT]]></title><description><![CDATA[<p>desperate progman schrieb:</p>
<blockquote>
<p>Fehlende Funktionen:<br />
- der TT wird sofort eingeblendet, jedoch soll er erst 1 Sekunde nach verharren der Maus über eine Item eingeblendet werden.<br />
- der TT wird nicht ausgeblendet wenn sich die Maus länger als 5 Sekunden nicht bewegt</p>
</blockquote>
<p>Auch diese Fragen beantwortet die MSDN.<br />
Du musst Dir nur mal die möglichen Nachrichten ansehen. Es wundert wohl nicht dass diese entsprechenden Funktionen sich hinter TTM_SETDELAYTIME verbergen.<br />
<a href="http://msdn2.microsoft.com/en-us/library/aa932371.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/aa932371.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1498510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1498510</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 26 Apr 2008 13:06:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wie erstelle ich ein ToolTip Fenster richtig on Sun, 27 Apr 2008 09:12:26 GMT]]></title><description><![CDATA[<p>Dank, ich habs hinbekommen, mein Fehler war <em><strong>TTM_SETTOOLINFO</strong></em> anstelle von <em><strong>TTM_UPDATETIPTEXT</strong></em> einzusetzen. Die TT-Control läuft nun einwandfrei mit meinen Listview- und Treeviefenstern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1498880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1498880</guid><dc:creator><![CDATA[desperate progman]]></dc:creator><pubDate>Sun, 27 Apr 2008 09:12:26 GMT</pubDate></item></channel></rss>