<?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[Falsche Ergebnisse bei GetTextExtentPoint32]]></title><description><![CDATA[<p>Hi Leutz<br />
Ich habe eine Funktion, um Die Höhe und Breite eines Textes in einer bestimmten Font zurück zu liefern. zuerst durchsuche ich den an die funktion übergebenen string auf &quot;\n&quot;s, und extrahiere die davon umgebenen strings (ich spalte den text also in seine einzelnen zeilen). für jede dieser zeilen rufe ich nun GetTextExtentPoint32 auf, die höhen der Zeilen addiere ich und als breite nehme ich die breite der längsten/breitesten zeile. diese 2 werte packe ich nun in eine SIZE struktur und gebe diese zurück. per directx lasse ich nun den text ausgeben (für das problem uninteressant, es sei hier nur mal gesagt). lasse ich die anwendung nun längere zeit laufen (5 - 10 min), so liefert GetTextExtentPoint32 aufeinmal völlig falsche ergebnisse zurück. frage: weß jemand, woran das liegt, oder hatte vielleicht schon mal jemand dieses prob (bevor blöde sprüche kommen: ja, ich habe die suche benutzt, und google auch!)? wie kann ich es lösen/umgehen?<br />
danke schonmal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/72656/falsche-ergebnisse-bei-gettextextentpoint32</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 03:04:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/72656.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Apr 2004 15:14:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Fri, 30 Apr 2004 15:14:15 GMT]]></title><description><![CDATA[<p>Hi Leutz<br />
Ich habe eine Funktion, um Die Höhe und Breite eines Textes in einer bestimmten Font zurück zu liefern. zuerst durchsuche ich den an die funktion übergebenen string auf &quot;\n&quot;s, und extrahiere die davon umgebenen strings (ich spalte den text also in seine einzelnen zeilen). für jede dieser zeilen rufe ich nun GetTextExtentPoint32 auf, die höhen der Zeilen addiere ich und als breite nehme ich die breite der längsten/breitesten zeile. diese 2 werte packe ich nun in eine SIZE struktur und gebe diese zurück. per directx lasse ich nun den text ausgeben (für das problem uninteressant, es sei hier nur mal gesagt). lasse ich die anwendung nun längere zeit laufen (5 - 10 min), so liefert GetTextExtentPoint32 aufeinmal völlig falsche ergebnisse zurück. frage: weß jemand, woran das liegt, oder hatte vielleicht schon mal jemand dieses prob (bevor blöde sprüche kommen: ja, ich habe die suche benutzt, und google auch!)? wie kann ich es lösen/umgehen?<br />
danke schonmal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/511945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/511945</guid><dc:creator><![CDATA[Babbo]]></dc:creator><pubDate>Fri, 30 Apr 2004 15:14:15 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Fri, 30 Apr 2004 15:20:53 GMT]]></title><description><![CDATA[<p>Babbo schrieb:</p>
<blockquote>
<p>weß jemand, woran das liegt</p>
</blockquote>
<p>An deinem Code. Poste ihn und man kann dir den Fehler zeigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/511949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/511949</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Fri, 30 Apr 2004 15:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Fri, 30 Apr 2004 17:51:13 GMT]]></title><description><![CDATA[<p>Müsste am DC liegen das du der Funktion übergibst. Arbeitest du mit Memory DC's (also Backbuffern)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512041</guid><dc:creator><![CDATA[Aziz]]></dc:creator><pubDate>Fri, 30 Apr 2004 17:51:13 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Sat, 01 May 2004 08:01:36 GMT]]></title><description><![CDATA[<p>Hm, naja, ich arbeite nicht wirklich mit DCs. ich lasse mir von meinem fenster in der funktion einfach einen dc &quot;geben&quot; (GetDC), setze dann die font (SelectObject), führe GetTextExtentPoint32 aus, setze die alte font wieder und &quot;lösche&quot; den dc (ReleaseDC). hoffe, diese beschreibung hilft, sorry, hab von der WinAPI nicht so de ahnung, wie gesagt, ich code eigentlich mit DirectX.<br />
@ D@niel $chumann : Der code kommt noch, bin nur grad am falschen rechner.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512195</guid><dc:creator><![CDATA[Babbo]]></dc:creator><pubDate>Sat, 01 May 2004 08:01:36 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Sat, 01 May 2004 08:24:39 GMT]]></title><description><![CDATA[<p>Erstellst evtl. bei jedem Durchlauf neu den neuen Font (ohne ihn freizugeben)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512204</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 01 May 2004 08:24:39 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Sat, 01 May 2004 09:23:40 GMT]]></title><description><![CDATA[<p>Ich habe eine LOGFONT struktur und rufe jedes mal CreateFont auf, ja, aber was meinst du mit freigeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512229</guid><dc:creator><![CDATA[Babbo]]></dc:creator><pubDate>Sat, 01 May 2004 09:23:40 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Sat, 01 May 2004 09:31:58 GMT]]></title><description><![CDATA[<p>DeleteObject</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512234</guid><dc:creator><![CDATA[DeleteObject]]></dc:creator><pubDate>Sat, 01 May 2004 09:31:58 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Sat, 01 May 2004 11:01:31 GMT]]></title><description><![CDATA[<p>Babbo schrieb:</p>
<blockquote>
<p>aber was meinst du mit freigeben?</p>
</blockquote>
<p>MSDN schrieb:</p>
<blockquote>
<p>When you no longer need the font, call the DeleteObject function to delete it.</p>
</blockquote>
<p>Was ist &quot;Falsch&quot;?</p>
<p>a) &quot;size&quot; ist in logical units, nicht unbedingt in pixeln<br />
b) die funktion berücksichtigt kein Escapement oder Rotation</p>
<p>Ich hab mit DrawText(...,DT_CALCRECT) gute Erfahrungen gemacht, weiß aber nicht ob da Dir in deinem Fall nützt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512235</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Sat, 01 May 2004 11:01:31 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Sat, 01 May 2004 10:20:47 GMT]]></title><description><![CDATA[<p>@ peterchen: zu a, ich weiß, aber zuerst passt es ja, wie im ersten posting gesagt, erst nach 5 - 10 minuten passiert das (dass Die funktion falsche werte ausspuckt).<br />
zu b, hab ich beides nicht &quot;drin&quot; in meinem geldaenen font.<br />
ach ja, braucht man für DrawText(...DT_CALCRECT) nicht mindestens einen Wert des Rects? ich möchte ja beide berechnen.<br />
zu dem delete object: probier ich mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512261</guid><dc:creator><![CDATA[Babbo]]></dc:creator><pubDate>Sat, 01 May 2004 10:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Sat, 01 May 2004 10:44:56 GMT]]></title><description><![CDATA[<p>Also, es klappt jetzt, ich musste tatsächlich nur die erstellte font löschen.<br />
danke an alle, hab aber noch ne frage:<br />
nochmal zu dem was peterchen gesagt hat, wegen escapement nd so. gibt es eine funktion, ide das selbe tut, wie GetTextExtentPoint32, aber eben auch escapement, rotation und all den kram berücksichtigt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512278</guid><dc:creator><![CDATA[Babbo]]></dc:creator><pubDate>Sat, 01 May 2004 10:44:56 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Sat, 01 May 2004 12:41:31 GMT]]></title><description><![CDATA[<p>Soweit ich weiß nicht. Je mehr aber eine Funktion berücksichtigen muss, desto länger wird sie brauchen um zu einem Resultat zu kommen. Vorallem Berechnungen, die mit Text zusammenhängen kann es zu langen Kalkulationszeiten kommen. Wenn es nicht unbedingt notwendig ist, dann würde ich darauf verzichten...insbesondere weil es eine DirectX Anwendung ist. Da zählt die Performance sehr viel. Du brauchst nur in den Google Groups nach den Begriffen &quot;DrawText&quot; und &quot;slow&quot; suchen, dann kannst du dir ein Bild davon machen welche Schwierigkeiten damit auftreten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512319</guid><dc:creator><![CDATA[Aziz]]></dc:creator><pubDate>Sat, 01 May 2004 12:41:31 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Ergebnisse bei GetTextExtentPoint32 on Sat, 01 May 2004 14:08:35 GMT]]></title><description><![CDATA[<p>Nun gut, du hast wohl recht. naja, danke nochmal an alle,<br />
ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/512373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/512373</guid><dc:creator><![CDATA[Babbo]]></dc:creator><pubDate>Sat, 01 May 2004 14:08:35 GMT</pubDate></item></channel></rss>