<?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[Font-Probleme... ich raff es einfach nicht]]></title><description><![CDATA[<p>Hallo,<br />
ich habe mich durch dieses Forum und verschiedene Webseiten gewühlt, aber ich krieg mein Problem einfach nicht gelöst.</p>
<p>Ich habe ein Hauptfenster (also keinen per Resource erzeugten Dialog), in dem ich ein Text setzen möchte, und zwar in der Schrift &quot;Tahoma&quot; (oder noch besser, den derzeitigen Standardfont). Egal was ich auch versucht habe, das einizige was passiert ist, ist dasmeine Frustrationskurve steiler wurde. Kann mir nicht jemand einen Tipp geben.</p>
<p>Hier sind die relevanten Code-Snippets:</p>
<pre><code>ATOM PopupRegisterClass(HINSTANCE hInstance, int mode){
	WNDCLASSEX wcex;
	wcex.cbSize = sizeof(WNDCLASSEX);
	wcex.style = CS_HREDRAW | CS_VREDRAW;
	wcex.lpfnWndProc = (WNDPROC)DialogProc;
	wcex.cbClsExtra = 0;
	wcex.cbWndExtra = 0;
	wcex.hInstance = hInstance;
	wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
	wcex.hbrBackground = (HBRUSH)(COLOR_BACKGROUND);
	wcex.lpszMenuName = NULL;
	wcex.lpszClassName = &quot;Popup&quot;;
	return RegisterClassEx(&amp;wcex);
}
</code></pre>
<pre><code>nt height = 80;
	int width = 300;
	PopupRegisterClass(hi, 0);
	HWND hwnd;
	LPRECT rec = (LPRECT) malloc(1024) ;
	GetWindowRect(hWnd,rec);
	int dX = ((rec-&gt;right+rec-&gt;left)/2)-(width/2);
	int dY = ((rec-&gt;top+rec-&gt;bottom)/2)-(height/2);
	hwnd = CreateWindowEx(WS_EX_DLGMODALFRAME,&quot;Popup&quot;, &quot;IMin - Installation Wizard&quot;, WS_POPUP | WS_CAPTION | WS_BORDER , dX, dY, width, height, NULL, NULL, hi, NULL);
	ShowWindow(hwnd, SW_SHOW);
	UpdateWindow(hwnd);
</code></pre>
<pre><code>LRESULT CALLBACK DialogProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
	HDC         hdc ;
    PAINTSTRUCT ps ;
	LPRECT rectangle = (LPRECT) malloc(1024) ;

    switch(message){
		case WM_PAINT:
			HGDIOBJ hFont;
			hFont = GetStockObject(SYSTEM_FONT);
			hdc = BeginPaint (hWnd, &amp;ps) ;
			rectangle-&gt;left = 15;
			rectangle-&gt;top = 10;
			rectangle-&gt;right = 290;
			rectangle-&gt;bottom = 25;
			SetBkMode(hdc, TRANSPARENT);
			SelectObject(hdc, hFont);
			DrawText (hdc, TEXT (&quot;Please wait while extracting setup.exe&quot;), -1, rectangle, DT_LEFT | DT_WORDBREAK) ;
			SetFocus(handles[0]);
			EndPaint (hWnd, &amp;ps) ;
			return 0 ;
			break;

		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}
</code></pre>
<p>Es muss doch auf einfache Art und Weise möglich sein den Font zu wechseln?<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/137443/font-probleme-ich-raff-es-einfach-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 23:48:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/137443.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Feb 2006 13:18:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Fri, 17 Feb 2006 13:18:51 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe mich durch dieses Forum und verschiedene Webseiten gewühlt, aber ich krieg mein Problem einfach nicht gelöst.</p>
<p>Ich habe ein Hauptfenster (also keinen per Resource erzeugten Dialog), in dem ich ein Text setzen möchte, und zwar in der Schrift &quot;Tahoma&quot; (oder noch besser, den derzeitigen Standardfont). Egal was ich auch versucht habe, das einizige was passiert ist, ist dasmeine Frustrationskurve steiler wurde. Kann mir nicht jemand einen Tipp geben.</p>
<p>Hier sind die relevanten Code-Snippets:</p>
<pre><code>ATOM PopupRegisterClass(HINSTANCE hInstance, int mode){
	WNDCLASSEX wcex;
	wcex.cbSize = sizeof(WNDCLASSEX);
	wcex.style = CS_HREDRAW | CS_VREDRAW;
	wcex.lpfnWndProc = (WNDPROC)DialogProc;
	wcex.cbClsExtra = 0;
	wcex.cbWndExtra = 0;
	wcex.hInstance = hInstance;
	wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
	wcex.hbrBackground = (HBRUSH)(COLOR_BACKGROUND);
	wcex.lpszMenuName = NULL;
	wcex.lpszClassName = &quot;Popup&quot;;
	return RegisterClassEx(&amp;wcex);
}
</code></pre>
<pre><code>nt height = 80;
	int width = 300;
	PopupRegisterClass(hi, 0);
	HWND hwnd;
	LPRECT rec = (LPRECT) malloc(1024) ;
	GetWindowRect(hWnd,rec);
	int dX = ((rec-&gt;right+rec-&gt;left)/2)-(width/2);
	int dY = ((rec-&gt;top+rec-&gt;bottom)/2)-(height/2);
	hwnd = CreateWindowEx(WS_EX_DLGMODALFRAME,&quot;Popup&quot;, &quot;IMin - Installation Wizard&quot;, WS_POPUP | WS_CAPTION | WS_BORDER , dX, dY, width, height, NULL, NULL, hi, NULL);
	ShowWindow(hwnd, SW_SHOW);
	UpdateWindow(hwnd);
</code></pre>
<pre><code>LRESULT CALLBACK DialogProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
	HDC         hdc ;
    PAINTSTRUCT ps ;
	LPRECT rectangle = (LPRECT) malloc(1024) ;

    switch(message){
		case WM_PAINT:
			HGDIOBJ hFont;
			hFont = GetStockObject(SYSTEM_FONT);
			hdc = BeginPaint (hWnd, &amp;ps) ;
			rectangle-&gt;left = 15;
			rectangle-&gt;top = 10;
			rectangle-&gt;right = 290;
			rectangle-&gt;bottom = 25;
			SetBkMode(hdc, TRANSPARENT);
			SelectObject(hdc, hFont);
			DrawText (hdc, TEXT (&quot;Please wait while extracting setup.exe&quot;), -1, rectangle, DT_LEFT | DT_WORDBREAK) ;
			SetFocus(handles[0]);
			EndPaint (hWnd, &amp;ps) ;
			return 0 ;
			break;

		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}
</code></pre>
<p>Es muss doch auf einfache Art und Weise möglich sein den Font zu wechseln?<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/996693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/996693</guid><dc:creator><![CDATA[dragonslair]]></dc:creator><pubDate>Fri, 17 Feb 2006 13:18:51 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Fri, 17 Feb 2006 14:33:59 GMT]]></title><description><![CDATA[<p>Um den Font dauerhaft zu verändern:</p>
<pre><code class="language-cpp">SendMessage(hwnd, WM_SETFONT, (WPARAM)GetStockObject(SYSTEM_FONT), 0L);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/996769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/996769</guid><dc:creator><![CDATA[_mgs]]></dc:creator><pubDate>Fri, 17 Feb 2006 14:33:59 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Fri, 17 Feb 2006 14:49:11 GMT]]></title><description><![CDATA[<p>Klingt schon mal gut. Wo bzw. wann muss ich die Message denn senden? Bevor ich den Text zeichen oder danach? Reicht es wenn ich SendMessage in Paint habe? Müsste eigentlich, oder?</p>
<p>Achso, was ist den OL bei dir?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/996780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/996780</guid><dc:creator><![CDATA[dragonslair]]></dc:creator><pubDate>Fri, 17 Feb 2006 14:49:11 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Fri, 17 Feb 2006 15:00:01 GMT]]></title><description><![CDATA[<blockquote>
<p>Wo bzw. wann muss ich die Message denn senden?</p>
</blockquote>
<p>Für dauerhafte Umstellung einfach direkt nach CreateWindow.</p>
<blockquote>
<p>Achso, was ist den OL bei dir?</p>
</blockquote>
<p>Nicht OL, sondern &quot;Null&quot;L</p>
]]></description><link>https://www.c-plusplus.net/forum/post/996792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/996792</guid><dc:creator><![CDATA[mgs_]]></dc:creator><pubDate>Fri, 17 Feb 2006 15:00:01 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Fri, 17 Feb 2006 15:05:18 GMT]]></title><description><![CDATA[<p>Ich glaube ich hatte die ganze Zeit ein Definitionsproblem...</p>
<p>Der Sytle &quot;System Font&quot; steht für MS Sans Serif, nicht wahr? Ich wollte eigentlich den Font auslesen, den der User unter Anzeige-&gt;Darstellung eingestellt hat. Also &quot;SystemFont&quot; &lt;&gt; &quot;User-defined Font&quot;! Ist das richtig?</p>
<p>Wie bekomme ich denn statt des SystemFont den Font Tahoma au fas Label?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/996797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/996797</guid><dc:creator><![CDATA[dragonslair]]></dc:creator><pubDate>Fri, 17 Feb 2006 15:05:18 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Fri, 17 Feb 2006 15:10:22 GMT]]></title><description><![CDATA[<p>Also nochmal deutlicher:</p>
<p>Wenn ich zum Beispiel eine Installation via msiexec im UI Modus starte, dann verändert sich die Schriftarte je nach dem, welche Schriftart ich gerade eingestellt habe. Dieses Verhalten würde ich gerne für meine Anwendung implementieren, verzweifle aber daran....</p>
<p>Das muss doch sicherlich zu machen sein, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/996799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/996799</guid><dc:creator><![CDATA[dragonslair]]></dc:creator><pubDate>Fri, 17 Feb 2006 15:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Fri, 17 Feb 2006 15:22:56 GMT]]></title><description><![CDATA[<p>Machbar ist alles, aber Font-Handling erfordert etwas Einarbeitung. Vielleicht hilft Dir das hier weiter:</p>
<p><a href="http://msdn.microsoft.com/library/en-us/gdi/fontext_3r77.asp" rel="nofollow">http://msdn.microsoft.com/library/en-us/gdi/fontext_3r77.asp</a></p>
<p>Es gibt für GetStockObject übrigens auch den Parameter DEFAULT_GUI_FONT, der wird aber vermutlich auch nur den Standard-Font liefern, nicht den vom Benutzer gewählten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/996814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/996814</guid><dc:creator><![CDATA[mgs_]]></dc:creator><pubDate>Fri, 17 Feb 2006 15:22:56 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Fri, 17 Feb 2006 17:23:08 GMT]]></title><description><![CDATA[<p>An einen bestimmten benutzereingestellten Font, z.B. Menu-Font, MessageBox-Font, usw, kommt man mit der Funktion SystemParametersInfo(). Mit dieser Funktion kann man eine Struktur des Typs NONCLIENTMETRICS mit den gesuchten Font-Daten füllen lassen. Beispiel:</p>
<p>[code]</p>
<p>static HFONT hFont; // static, damit der Font nicht bei jedem WM_PAINT neu erzeugt werden muss</p>
<p>switch(message)<br />
{<br />
case WM_CREATE:<br />
LOGFONT lf;<br />
NONCLIENTMETRICS ncm = {sizeof(NONCLIENTMETRICS)};</p>
<p>// Font-Daten vom System holen<br />
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), (void*)&amp;ncm, FALSE);<br />
// MessageBox-Fontdaten in unser eigenes LOGFONT kopieren<br />
lf = ncm.lfMessageFont;<br />
// Font erzeugen<br />
hFont = CreateFontIndirect(&amp;lf);</p>
<p>break;</p>
<p>case WM_PAINT:<br />
// Hier den hFont selektieren, zeichnen, de-selektieren<br />
...<br />
break;</p>
<p>case WM_DESTROY:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/996882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/996882</guid><dc:creator><![CDATA[Walter Zorn]]></dc:creator><pubDate>Fri, 17 Feb 2006 17:23:08 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Fri, 17 Feb 2006 17:30:22 GMT]]></title><description><![CDATA[<p>Sorry, bin zu früh auf den Sende-Button gekommen. Also hier nochmal <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>An einen bestimmten benutzereingestellten Font, z.B. Menu-Font, MessageBox-Font, usw, kommt man mit der Funktion SystemParametersInfo(). Mit dieser Funktion kann man eine Struktur des Typs NONCLIENTMETRICS mit den gesuchten Font-Daten füllen lassen. Beispiel:</p>
<pre><code>static HFONT hFont; // static, damit der Font nicht bei jedem WM_PAINT neu erzeugt werden muss 

switch(message) 
{ 
    case WM_CREATE: 
        LOGFONT lf; 
        NONCLIENTMETRICS ncm = {sizeof(NONCLIENTMETRICS)}; 

        // Font-Daten vom System holen 
        SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS),(void*)&amp;ncm, FALSE); 
        // MessageBox-Fontdaten in unser eigenes LOGFONT kopieren 
        lf = ncm.lfMessageFont; 
        // Font erzeugen 
        hFont = CreateFontIndirect(&amp;lf); 

        break; 

    case WM_PAINT: 
        // Hier den hFont selektieren, zeichnen, de-selektieren 
        ... 
        break; 

    case WM_DESTROY:
            DeleteObject(hFont);
            ....
            break;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/996884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/996884</guid><dc:creator><![CDATA[Walter Z]]></dc:creator><pubDate>Fri, 17 Feb 2006 17:30:22 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Sat, 18 Feb 2006 13:24:54 GMT]]></title><description><![CDATA[<p>Danke für die letzten beiden Hilfen, ich werde sie mir mal über WE reintun und am Montag auf der Arbeit schauen, was es bringt... habe mich jetzt gerade ein bisserl durchgearbeitet durch die Beispiele und eine Frage habe ich noch zu Walter Z:</p>
<p>Die Funktion SystemParametersInfo ist in der Tat, das was cih gesucht habe. Soll ich dann eigentlich mittels HDC und DrwaText den Text aufs Fenster bringen, oder lieber per SendMessage(hwnd,WM_SETTEXT...)?</p>
<p>Ich hätte echt nicht gedacht, das Fonthandling mit der WinAPI so viele Parameter verlangt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/997204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/997204</guid><dc:creator><![CDATA[dragonslair]]></dc:creator><pubDate>Sat, 18 Feb 2006 13:24:54 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Sat, 18 Feb 2006 14:02:11 GMT]]></title><description><![CDATA[<p>So, ich nochmal. Ich habe es jetzt folgendermaßen umgesetzt:</p>
<pre><code>case WM_CREATE:
		{
			LOGFONT lf;
			NONCLIENTMETRICS ncm = {sizeof(NONCLIENTMETRICS)};

			// Font-Daten vom System holen
			if(SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS),(void*)&amp;ncm, FALSE) == 0){
				MessageBox(NULL, &quot;Window Font Failed!&quot;, &quot;Error!&quot;, MB_ICONEXCLAMATION | MB_OK);
			}
			// MessageBox-Fontdaten in unser eigenes LOGFONT kopieren
			lf = ncm.lfStatusFont;
			// Font erzeugen
			hFont = CreateFontIndirect(&amp;lf); 
...
</code></pre>
<p>Und die Paint-Methode:</p>
<pre><code>case WM_PAINT:
			hdc = BeginPaint (hWnd, &amp;ps) ;
			rectangle-&gt;left = 15;
			rectangle-&gt;top = 10;
			rectangle-&gt;right = 337;
			rectangle-&gt;bottom = 45;
			SendMessage(hWnd,WM_SETFONT,(WPARAM)hFont,true);
			DrawText (hdc, TEXT (&quot;Select the language for this installation from the choices below:&quot;), -1, rectangle,DT_LEFT | DT_WORDBREAK) ;
			EndPaint (hWnd, &amp;ps) ;
...
</code></pre>
<p>HFONT hFont ist static und global.</p>
<p>Ich dachte eigentlich, dass ich jetzt die Schriftart meiner Statusleiste zu sehen bekomme, aber mitnichten... was mache ich da bloß falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/997226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/997226</guid><dc:creator><![CDATA[dragonslair]]></dc:creator><pubDate>Sat, 18 Feb 2006 14:02:11 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Mon, 20 Feb 2006 15:58:21 GMT]]></title><description><![CDATA[<p>Keiner mehr Lust?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/998708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/998708</guid><dc:creator><![CDATA[dragonslair]]></dc:creator><pubDate>Mon, 20 Feb 2006 15:58:21 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Mon, 20 Feb 2006 17:33:34 GMT]]></title><description><![CDATA[<p>Wenn Du mit SendMessage arbeitest, dann würde ich den Zeitpunkt nach dem Create des Fensters empfehlen.</p>
<p>Im Paint solltest Du lieber das verwenden:<br />
HANDLE hFont ;<br />
hFont = SelectObject(hdc, hMyFont) ;</p>
<p>Aber nicht vergessen, Du musst das wieder rückgängig machen<br />
SelectObject(hdc, hFont);</p>
<p>Gruß André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/998770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/998770</guid><dc:creator><![CDATA[av_privat]]></dc:creator><pubDate>Mon, 20 Feb 2006 17:33:34 GMT</pubDate></item><item><title><![CDATA[Reply to Font-Probleme... ich raff es einfach nicht on Wed, 22 Feb 2006 10:28:15 GMT]]></title><description><![CDATA[<p>Super danke, das funktioniert jetzt bestens...<br />
Hat jemand vielleicht einen Tipp, wie man zB Tahoma als Standardfont auswählen kann?<br />
Ich habe zwar das Buch von Petzold über die Win32-Programmierung hier, aber ich finde das schrecklich. Ich denke, dass es mit den EnumFontx-Functions zu tun haben wird, oder?<br />
Wäre über einen Tipp, Link, Verweis auf Tutorial diesbezüglich wirklich dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999993</guid><dc:creator><![CDATA[dragonslair]]></dc:creator><pubDate>Wed, 22 Feb 2006 10:28:15 GMT</pubDate></item></channel></rss>