<?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[LB_GETTEXTLEN liefert immer 4 zurück]]></title><description><![CDATA[<p>Hi!</p>
<p>Das Problem ist, dass LB_GETTEXTLEN immer 4 zurückliefert.<br />
Hier ist ein Ausschnitt aus dem WM_DRAWITEM Code</p>
<pre><code class="language-cpp">DRAWITEMSTRUCT *dis = (LPDRAWITEMSTRUCT)lParam;

	HDC hDC             = dis-&gt;hDC;
	RECT rc             = dis-&gt;rcItem;
	unsigned id			= dis-&gt;itemID;

         /* ... */

	LRESULT MsgLen;
	MsgLen = SendMessage( dis-&gt;hwndItem, LB_GETTEXTLEN, (WPARAM)id, 0 );

	char *Message = new char[MsgLen+1];
	SendMessage( dis-&gt;hwndItem, LB_GETTEXT, (WPARAM)id, (LPARAM)&amp;Message );

	DrawText  ( hDC, Message, MsgLen, &amp;rc, DT_SINGLELINE);
</code></pre>
<p>Wenn ich bei der ListBox das OwnerDraw wegnehme funktioniert alles und Message zeigt auch auf die richtige Stelle von der Nachricht. Trotzdem steht in MsgLen immer 4 und angezeigt werden dementsprechend auch nur die ersten 4 Zeichen (selbst wenn der Text 2 Zeichen lang ist werden 4 Zeichen angezeigt).</p>
<p>Was ist da falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/75988/lb_gettextlen-liefert-immer-4-zurück</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 08:35:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/75988.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 Jun 2004 19:10:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to LB_GETTEXTLEN liefert immer 4 zurück on Sun, 06 Jun 2004 19:10:51 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Das Problem ist, dass LB_GETTEXTLEN immer 4 zurückliefert.<br />
Hier ist ein Ausschnitt aus dem WM_DRAWITEM Code</p>
<pre><code class="language-cpp">DRAWITEMSTRUCT *dis = (LPDRAWITEMSTRUCT)lParam;

	HDC hDC             = dis-&gt;hDC;
	RECT rc             = dis-&gt;rcItem;
	unsigned id			= dis-&gt;itemID;

         /* ... */

	LRESULT MsgLen;
	MsgLen = SendMessage( dis-&gt;hwndItem, LB_GETTEXTLEN, (WPARAM)id, 0 );

	char *Message = new char[MsgLen+1];
	SendMessage( dis-&gt;hwndItem, LB_GETTEXT, (WPARAM)id, (LPARAM)&amp;Message );

	DrawText  ( hDC, Message, MsgLen, &amp;rc, DT_SINGLELINE);
</code></pre>
<p>Wenn ich bei der ListBox das OwnerDraw wegnehme funktioniert alles und Message zeigt auch auf die richtige Stelle von der Nachricht. Trotzdem steht in MsgLen immer 4 und angezeigt werden dementsprechend auch nur die ersten 4 Zeichen (selbst wenn der Text 2 Zeichen lang ist werden 4 Zeichen angezeigt).</p>
<p>Was ist da falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/534533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/534533</guid><dc:creator><![CDATA[ProfEich]]></dc:creator><pubDate>Sun, 06 Jun 2004 19:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to LB_GETTEXTLEN liefert immer 4 zurück on Sun, 06 Jun 2004 19:38:12 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">SendMessage( dis-&gt;hwndItem, LB_GETTEXT, (WPARAM)id, (LPARAM)&amp;Message );
</code></pre>
</blockquote>
<p>Muss da nicht vor Message das &amp; weg <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/534565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/534565</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sun, 06 Jun 2004 19:38:12 GMT</pubDate></item><item><title><![CDATA[Reply to LB_GETTEXTLEN liefert immer 4 zurück on Sun, 06 Jun 2004 20:01:49 GMT]]></title><description><![CDATA[<p>Dachte ich auch erst - Aber dann kommt im Endeffekt nur Wirrwarr raus.</p>
<p>Sonst müsste ich ja hier schon Mist gemacht haben:</p>
<pre><code class="language-cpp">void CListBox::AddItem( char *Text )
{
	SendMessage( Handle, LB_ADDSTRING, 0, (LPARAM)Text );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/534580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/534580</guid><dc:creator><![CDATA[ProfEich]]></dc:creator><pubDate>Sun, 06 Jun 2004 20:01:49 GMT</pubDate></item></channel></rss>