<?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[Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen]]></title><description><![CDATA[<pre><code>virtual void Draw(CDC* pDC){ 

		CString sztemp=&quot;Max Mustermann!&quot;;

		pDC-&gt;DrawText(sztemp,Pos,DT_CENTER|DT_VCENTER|DT_CALCRECT);
	};
</code></pre>
<p>Das CRect sollte durch das Flag DT_CALCRECT dem Text angepasst werden so das &quot;Max Mustermann!&quot; dargestellt wird. Nur Wenn ich das Flag setze verschwindet der Text. Ohne das Flag hat ds CRect eine standardgröße und stellt nicht den gesamten Text dar. <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/topic/179910/schrifthöhe-breite-rausbekommen-oder-crectgröße-anpassen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 10:03:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179910.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Apr 2007 13:12:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen on Thu, 26 Apr 2007 13:12:46 GMT]]></title><description><![CDATA[<pre><code>virtual void Draw(CDC* pDC){ 

		CString sztemp=&quot;Max Mustermann!&quot;;

		pDC-&gt;DrawText(sztemp,Pos,DT_CENTER|DT_VCENTER|DT_CALCRECT);
	};
</code></pre>
<p>Das CRect sollte durch das Flag DT_CALCRECT dem Text angepasst werden so das &quot;Max Mustermann!&quot; dargestellt wird. Nur Wenn ich das Flag setze verschwindet der Text. Ohne das Flag hat ds CRect eine standardgröße und stellt nicht den gesamten Text dar. <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/1273969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273969</guid><dc:creator><![CDATA[McSnoop]]></dc:creator><pubDate>Thu, 26 Apr 2007 13:12:46 GMT</pubDate></item><item><title><![CDATA[Reply to Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen on Thu, 26 Apr 2007 13:39:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">virtual void Draw(CDC* pDC)
{
    CString szString = TEXT(&quot;Max Mustermann!&quot;);
    CRect rcString(10, 10, 20, 20);
    pDC-&gt;DrawText(szString, rcString, DT_CENTER | DT_VCENTER | DT_CALCRECT);
}
</code></pre>
<p><a href="http://msdn2.microsoft.com/en-us/library/a6x7y2a4(vs.71).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/a6x7y2a4(vs.71).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273993</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 26 Apr 2007 13:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen on Thu, 26 Apr 2007 13:59:09 GMT]]></title><description><![CDATA[<p>Pos ist ein CRect und eine Fix Position ist nicht vorgesehen, da die Elemente Per Maus verschoben werden können.</p>
<p>Ob ich deine Version nehme oder meine ist egal, bei beiden wird der Text nicht dargestellt wenn ich die Option DT_CALCRECT mit drinnne habe. Ausserdem kommt bei deiner Version nur Pixelmatsch raus an der CRect Position.</p>
<p>Mit</p>
<pre><code>CString sztemp=&quot;Max Mustermann!&quot;;

		Pos.InflateRect(100,20);		

		pDC-&gt;DrawText(sztemp,Pos,DT_CENTER|DT_VCENTER);
</code></pre>
<p>kann ich zwar durch InflateRect das Fenster vergrößern, aber der Text ist ja noch variabel und die Länge steht ja nicht fest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274006</guid><dc:creator><![CDATA[McSnoop]]></dc:creator><pubDate>Thu, 26 Apr 2007 13:59:09 GMT</pubDate></item><item><title><![CDATA[Reply to Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen on Sat, 28 Apr 2007 11:50:19 GMT]]></title><description><![CDATA[<p>Hat einer eine Idee wieso trotz Flag DT_CALCRECT der Text nicht dargestellt wird?</p>
<p>Draw aus dem Object CMyFontObject</p>
<pre><code>virtual void Draw(CDC* pDC){ 
pDC-&gt;DrawText(sztemp,&amp;Pos,DT_LEFT|DT_EXPANDTABS|DT_WORDBREAK);
	};
</code></pre>
<p>Hier in der OnMouseMove wird die Position neugesetzt.</p>
<pre><code>void CMy07AufgabeView::OnMouseMove(UINT nFlags, CPoint point) 
{
	if( GetCapture() == this ) // hier wird nochmal getestet ob der Capture innerhalb meiner Programminstanz anfing
	{
		// move an object
		CMy07AufgabeDoc* pDoc = GetDocument();
		ASSERT_VALID(pDoc);
		POSITION pos = pDoc-&gt;DrawObjectList.GetTailPosition();
		if( pos != NULL )
		{
			// get topmost object
			CMyDrawObject *pDrawObject =
				pDoc-&gt;DrawObjectList.GetAt(pos);
			// remember previous position
			CRect OldPos( pDrawObject-&gt;GetPos() );
			// move it
			if(m_nDefType!=DRW_FONT){
				pDrawObject-&gt;SetPos( point, 1 ); // geht nur für festen Elementgrößen
			}else{
				pDrawObject-&gt;SetPos( point, 0 ); 
			}
			// redraw only changed area
			CRect RedrawRect;
			RedrawRect.UnionRect( OldPos, pDrawObject-&gt;GetPos() ); // zeichnet nur den alten bereich und den neuen bereich neu --&gt; weniger geflacker
			// redraw changed area of the view
			RedrawWindow( RedrawRect );  
		} // if( pos != NULL )
	} // if( GetCapture() == this )
	CView::OnMouseMove(nFlags, point);
}
</code></pre>
<p>SetPos befindet sich in der Basisklasse CMyDrawObject von MCyFontObject</p>
<pre><code>inline void SetPos(CPoint nPos, int version){
		CRect rect(nPos, nPos);

		if(version!=0){
			rect.InflateRect(20,20);
		}else{
			rect.InflateRect(100,20);
		}

		Pos=rect;
	};
</code></pre>
<p>genau hier in der SetPos kann ich durch InflateRect auch die Größe Variieren, aber das ist ja nicht Sinn und Zweck. sztemp in der Methode Draw vom CMyFontObject erhalte ich nach der Eingabe in meinem Dialog. Da Aber das Flag DT_CALCRECT von DrawText nicht funzt ist jetzt die Höhe/Breite des verwendeten Fonts interessant. Wieso das Flag nicht geht weiß ich noch nicht. Wenn ich das Flag setze wird der Text nicht dargestellt, nehme ich es wieder raus klappt es wieder, aber halt auch nur bis die grenzen vom CRect erreicht sind.</p>
<p><a href="http://mcsnoop.mc.funpic.de/MFC/immernoch_Problem.JPG" rel="nofollow">http://mcsnoop.mc.funpic.de/MFC/immernoch_Problem.JPG</a></p>
<p><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="😕"
    /> <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="😕"
    /> <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/1274069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274069</guid><dc:creator><![CDATA[McSnoop]]></dc:creator><pubDate>Sat, 28 Apr 2007 11:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen on Sat, 28 Apr 2007 20:32:45 GMT]]></title><description><![CDATA[<pre><code>pDC-&gt;DrawText(sztemp,&amp;Pos,DT_LEFT|DT_EXPANDTABS|DT_WORDBREAK|DT_NOCLIP|DT_CALCRECT);
		pDC-&gt;DrawText(sztemp,&amp;Pos,DT_LEFT|DT_EXPANDTABS|DT_WORDBREAK|DT_NOCLIP);
</code></pre>
<p>Wenn ich das so schreibe, gehts obwohl ich das schon ziemlich dämlich finde, wenn das so wirklich von den DrawText Machern vorgesehen ist.</p>
<p>Jetzt wird das CRect Pos richtig dem Text angepasst. <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>
<p>Falls trotzdem einer eine Idee hat wieso das nur so geht immer her damit. Denn schön schauen die beiden Zeilen so nicht aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1275401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1275401</guid><dc:creator><![CDATA[McSnoop]]></dc:creator><pubDate>Sat, 28 Apr 2007 20:32:45 GMT</pubDate></item><item><title><![CDATA[Reply to Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen on Sat, 28 Apr 2007 20:45:55 GMT]]></title><description><![CDATA[<p>Naja das du durch DT_CALCRECT nur das Rect zurück bekommst ist klar ... wenn dir aber die pure Breite in Pixel den Textes ohne irgendwelches Ausrichten reicht, geht auch pDC-&gt;GetTextExtent um die Breite und Höhe zu bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1275405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1275405</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 28 Apr 2007 20:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen on Sat, 28 Apr 2007 21:26:08 GMT]]></title><description><![CDATA[<p>Warum liefert dann aber um nochmal auf DrawText zurückzukommen das Flag DT_CALCRECT nur die Größe zurück und es muss nochmal ausgeführt werden ohne Flag. Flags sind doch dazu da um Funktion sowieso mit einem speziellen Parameter auszuführen oder versteh ich da was falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1275432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1275432</guid><dc:creator><![CDATA[McSnoop]]></dc:creator><pubDate>Sat, 28 Apr 2007 21:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen on Sat, 28 Apr 2007 22:07:58 GMT]]></title><description><![CDATA[<p>Jo und durch dieses Flag veranlast du die Funktion dazu anstelle zu zeichnen einfach nur die von ihr berechneten Koordinaten in einen der übergebenen Parameter zu packen und feddisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1275446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1275446</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 28 Apr 2007 22:07:58 GMT</pubDate></item><item><title><![CDATA[Reply to Schrifthöhe&#x2F;Breite rausbekommen oder CRectgröße anpassen on Sat, 28 Apr 2007 22:16:37 GMT]]></title><description><![CDATA[<p><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="🙂"
    /> Finde das trotzdem nicht besonders praktisch. Aber schön ist das nun alles geht so wie ich mir das denke und nun gehts weiter im Context. *g*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1275449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1275449</guid><dc:creator><![CDATA[McSnoop]]></dc:creator><pubDate>Sat, 28 Apr 2007 22:16:37 GMT</pubDate></item></channel></rss>