<?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[Textgröße eines CEdit-Feldes]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich füge mittels Create()-Methode eine CEditfeld in die View meiner Anwendung ein. Wie kann man die Schriftgröße und -farbe verändert?<br />
Habe das mittels SetFont() probiert und auch eine eigene Klasse abgeleitet und in der die Create überschrieben. Aber das funktioniert nicht. Kann da wer helfen? habe nichts brauchbares in der FAQ drüber gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147407/textgröße-eines-cedit-feldes</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 03:51:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147407.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 May 2006 14:27:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Tue, 16 May 2006 14:27:42 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich füge mittels Create()-Methode eine CEditfeld in die View meiner Anwendung ein. Wie kann man die Schriftgröße und -farbe verändert?<br />
Habe das mittels SetFont() probiert und auch eine eigene Klasse abgeleitet und in der die Create überschrieben. Aber das funktioniert nicht. Kann da wer helfen? habe nichts brauchbares in der FAQ drüber gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1058951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1058951</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Tue, 16 May 2006 14:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Tue, 16 May 2006 15:04:34 GMT]]></title><description><![CDATA[<p>Also bei mir funktioniert das eigentlich, auch ohne Ableitung:</p>
<p>Als Bsp ein Dialog der ein CEdit IDC_EDIT enthält:</p>
<p>nach dem das Feld existiert (in OnInitDialog())</p>
<pre><code class="language-cpp">CFont *pFont = new CFont();
    pFont-&gt;CreateFont(10,10,0,0,0,0,0,0,0,0,0,0,0,0);
    CWnd* pEdit = this-&gt;GetDlgItem(IDC_EDIT);
    pEdit-&gt;SetFont( pFont);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1058976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1058976</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Tue, 16 May 2006 15:04:34 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Tue, 16 May 2006 15:30:55 GMT]]></title><description><![CDATA[<p>Ich habe das Edit-Control in meiner View-Klasse und nicht in einem Dialogfeld. Habe dein Beispiel mal auf meine Bedürfnisse zugeschnitten und das in der OnCreate() stehen. So funktioniert es auch. Warum kann man aber nicht direkt die Funktion SetFont des Editfeldes aufrufen? Bei einem RichEditCntl geht das doch auch....</p>
<p>Also vielen Dank nochmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1058995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1058995</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Tue, 16 May 2006 15:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Tue, 16 May 2006 16:00:37 GMT]]></title><description><![CDATA[<p>Sorry, wegen dem Dialog, war das was schnell zur Hand war <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 />
Eigentlich sollte es auch direkt mit SetFont funktionieren. Kannst Du mal ein Stück Code posten? Wird eventuell der Destruktor deines Fonts aufgerufen nachdem du den Font zugewiesen hast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1059012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059012</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Tue, 16 May 2006 16:00:37 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Wed, 17 May 2006 06:15:29 GMT]]></title><description><![CDATA[<p>Ja kein Problem. Zur Erklärung: ich habe eine Membervariable M_MyEdit1 vom Typ CEdit in meiner View-Klasse. In der OnCreate füge ich das Edit-feld in mein View ein und habe da wie folgt versucht, den Font zuzuweisen:</p>
<pre><code class="language-cpp">int CTestAppView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;

	// TODO:  Fügen Sie Ihren spezialisierten Erstellcode hier ein.
	m_MyEdit1.Create(&quot;Test&quot;,WS_CHILD|WS_BORDER|WS_VISIBLE|SS_RIGHT,CRect(10,10,300,50),this,IDC_MYEDIT1);
	CFont font; 
	font.CreateFont(28,// nHeight 
           0,// nWidth 
           0,// nEscapement 
           0,// nOrientation 
           FW_NORMAL,// nWeight 
           FALSE,// bItalic 
           FALSE,// bUnderline 
           0,// cStrikeOut 
           ANSI_CHARSET,// nCharSet 
           OUT_DEFAULT_PRECIS,// nOutPrecision 
           CLIP_DEFAULT_PRECIS,// nClipPrecision 
           DEFAULT_QUALITY,// nQuality 
           DEFAULT_PITCH | FF_SWISS,// nPitchAndFamily 
           &quot;Verdana&quot;);// lpszFacename 
	m_MyEdit1.SetFont(&amp;font,true);
	DeleteObject(font);
	return 0;
}
</code></pre>
<p>Das lässt sich problemlos compilieren auch beim Ausführen gibts keine Ausnahmen oder Asserts. Verändere ich den Typ der Membervariablen in CRichEditCtrl so funktioniert das wunderbar. Deshalb habe ich damit Verständnisprobleme. Aber vielleicht seh ich ja den Wald vor lauter Bäumen nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1059252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059252</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Wed, 17 May 2006 06:15:29 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Wed, 17 May 2006 07:30:17 GMT]]></title><description><![CDATA[<p>connan schrieb:</p>
<blockquote>
<p>Also bei mir funktioniert das eigentlich, auch ohne Ableitung:</p>
<p>Als Bsp ein Dialog der ein CEdit IDC_EDIT enthält:</p>
<p>nach dem das Feld existiert (in OnInitDialog())</p>
<pre><code class="language-cpp">CFont *pFont = new CFont();
    pFont-&gt;CreateFont(10,10,0,0,0,0,0,0,0,0,0,0,0,0);
    CWnd* pEdit = this-&gt;GetDlgItem(IDC_EDIT);
    pEdit-&gt;SetFont( pFont);
</code></pre>
</blockquote>
<p>Bin da gerade auf ein weiteres Problem gestoßen. Wann vernichtest Du denn deinen pFont? Wenn man das so wie da gezeigt stehen lässt funktioniert das zwar, man hat aber ein Speicherleck. Gibt man direkt nach SetFont den pFont frei ist nur der Cursor in der gewünschten Texthöhe, der Text selbst aber wieder wie vorher klein. <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/1059296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059296</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Wed, 17 May 2006 07:30:17 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Wed, 17 May 2006 08:46:41 GMT]]></title><description><![CDATA[<p>In DestroyWindow() mit GetFont() wäre eine Möglichkeit. Wie wärs, wenn Du den Fontpointer einfach als Member deiner App deklarierst. Ich habe mal probiert den Font, so wie Du, auf dem Stack zu erzeugen aber selbst da kommt bei mir schon Mist raus <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/1059338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059338</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Wed, 17 May 2006 08:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Wed, 17 May 2006 09:53:22 GMT]]></title><description><![CDATA[<p>connan schrieb:</p>
<blockquote>
<p>In DestroyWindow() mit GetFont() wäre eine Möglichkeit. Wie wärs, wenn Du den Fontpointer einfach als Member deiner App deklarierst. Ich habe mal probiert den Font, so wie Du, auf dem Stack zu erzeugen aber selbst da kommt bei mir schon Mist raus <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>
</blockquote>
<p>Hab ich zwar so nicht ausprobiert dürfte aber funktionieren, da man innerhalb der View-Klasse von überall drauf zugreifen kann. Vom Verständnis her dachte ich, dass der Font nur zum Erstellen des CEdits (also in der Create()) gebraucht wird um der zu erstellenden Instanz neue Eigenschaften zu übergeben, die sie dann auch behält. Allerdings existiert die Instanz ja schon seit dem Aufruf des Konstruktors der View-Klasse, da dies ein Member der View ist.<br />
Was mich allerdings verwundert ist, dass der Cursor die Größe der gewünschten Texthöhe immer noch hat. Es funktioniert halt nicht, da das Font-Objekt bereits in der OnCreate() zerstört wurde. Lässt man den delete()-Befehl weg funktionerts und das Spiecherleck entsteht. Ist es nicht aber so das generell beim Beenden der OnCreate() die Adresse des Zeigers zerstört wird und der Zeiger nur noch physisch im Speicher als Datenblock (ohne Startadresse) existiert (was ja dann auch das Speicherleck induziert)? Oder hab ich da ein Verständnisproblem? Anscheinend scheint sich das CEdit die Adresse zu merken, die OnCreate() vernichtet diese beim Beenden, so dass man extern nicht mehr zugreifen kann.<br />
Dann stellt sich immer noch die Fragen warum das hier</p>
<pre><code class="language-cpp">int CTestAppView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;

	m_RichText.Create(WS_CHILD|WS_VISIBLE|SS_RIGHT|WS_BORDER, 
    CRect(10,10,300,50),this,IDC_RICHTEXT);
    CFont font; 
    font.CreateFont(28,// nHeight 
           0,// nWidth 
           0,// nEscapement 
           0,// nOrientation 
           FW_NORMAL,// nWeight 
           FALSE,// bItalic 
           FALSE,// bUnderline 
           0,// cStrikeOut 
           ANSI_CHARSET,// nCharSet 
           OUT_DEFAULT_PRECIS,// nOutPrecision 
           CLIP_DEFAULT_PRECIS,// nClipPrecision 
           DEFAULT_QUALITY,// nQuality 
           DEFAULT_PITCH | FF_SWISS,// nPitchAndFamily 
           &quot;Verdana&quot;);// lpszFacename 
    m_RichText.SetFont(&amp;font,1);
	DeleteObject(font);
	return 0;
}
</code></pre>
<p>problemlos funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1059400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059400</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Wed, 17 May 2006 09:53:22 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Wed, 17 May 2006 11:25:45 GMT]]></title><description><![CDATA[<p>Eigentlich sollte es wirklich so sein, dass der Font nur für die Erstellung benötigt wird, da er ja auch so ein GDIObject ist. Vieleicht liegt auch da der Unterschied, ein RichEdit selectiert vieleicht den Font direkt im DC damit kann er nicht zerstört werden. In der Folge müsste DeleteObject eigentlich FALSE zurückgeben und Du hast denselben Fall wie mit dem Edit. Hast Du mal geprüft was DeleteObject() zurückgibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1059472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059472</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Wed, 17 May 2006 11:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Wed, 17 May 2006 14:01:41 GMT]]></title><description><![CDATA[<p>connan schrieb:</p>
<blockquote>
<p>Eigentlich sollte es wirklich so sein, dass der Font nur für die Erstellung benötigt wird, da er ja auch so ein GDIObject ist. Vieleicht liegt auch da der Unterschied, ein RichEdit selectiert vieleicht den Font direkt im DC damit kann er nicht zerstört werden. In der Folge müsste DeleteObject eigentlich FALSE zurückgeben und Du hast denselben Fall wie mit dem Edit. Hast Du mal geprüft was DeleteObject() zurückgibt?</p>
</blockquote>
<p>DeleteObject() gibt in beiden Fällen (CStatic und CRichEditCtrl) TRUE zurück. In einem anderen Thread <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-147361.html" rel="nofollow">hier</a> ging es um um ein ähnliches Problem allerdings mit Buttons. Da wurde empfohlen den Font als Member der Viewklasse anzulegen und dann hat man ja von überall drauf Zugriff. Dennoch ist nicht klar, warum es hier bei den zwei Klassen Unterschiede gibt. Wenn wir schon mal dabei sind: über den Font kann ich aber nicht die Schriftfarbe definieren, oder? Das geht dann irgendwie über die WM_CRTCOLOR-Behandlungsmethode des Dialogobjektes?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1059571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059571</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Wed, 17 May 2006 14:01:41 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Wed, 17 May 2006 14:36:07 GMT]]></title><description><![CDATA[<p>Genau, dafür gibts CDC::SetTextColor(..) und CDC::SetBKColor(..) (IMHO <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 />
aufzurufen in CWnd::OnCtlColor. Jetzt kommst Du aber um eine eigene Klasse nicht mehr drumrum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1059614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059614</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Wed, 17 May 2006 14:36:07 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Wed, 17 May 2006 14:52:56 GMT]]></title><description><![CDATA[<p>Hab ja nicht gesagt das ich mir keine eigene Klasse schaffen will. Mir kam nur so die Idee das es hilfreich wäre wenn der Eingabewert außerhalb des Vorgabebereiches liegt den Text rot zu färben und ansonsten schwarz zu lassen. Deshalb auch das dynamische Vorgehen.<br />
Im übrigen: das mit den Fonts als Member funktioniert ganz prima. Leider beantwortet es die Frage nicht und mich nervt das wenn ich nicht rausfinde warum etwas so ist wie es ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1059634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059634</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Wed, 17 May 2006 14:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to Textgröße eines CEdit-Feldes on Wed, 17 May 2006 14:58:42 GMT]]></title><description><![CDATA[<p>Geht mir genauso <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1059641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1059641</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Wed, 17 May 2006 14:58:42 GMT</pubDate></item></channel></rss>