<?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[LoadIcon(NULL, IDI_*) liefert immer nur das gleiche Standardicon]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich bekomme beim Laden von Standardicons für mein Fenster immer nur ein und dasselbe Standardicon angezeigt, egal ob ich LoadIcon IDI_APPLICATION, IDI_WINLOGO oder eine der anderen Standardbezeichner für Icons übergebe. Das Programm kompiliert und läuft einwandfrei.</p>
<p>Habe gegoogelt und hier die Suche-Funktion bemüht, aber augenscheinlich bin ich tatsächlich der einzige, der dieses Probelm hat. Weiß jemand wieso das sein kann? An irgendwas muss es ja liegen, zumal ich mit LoadCursor ohne Probleme jeden Standardcursor laden kann.</p>
<p>Auch wenn's wahrscheinlich nicht viel bringt, gebe ich mal einen lauffähigen (und auch völlig trivialen) Beispielcode an, der aber geschildertes Problem hat (zumindest auf meinem Rechner):</p>
<pre><code class="language-cpp">//main.cpp

#include &lt;windows.h&gt;

LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
	switch(uMsg) {
		case WM_CLOSE:
			DestroyWindow(hwnd);
			break;

		case WM_DESTROY:
			PostQuitMessage(0);
			break;

		default:
			return DefWindowProc(hwnd, uMsg, wParam, lParam);
	}

	return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {

	WNDCLASSEX wc;
	ZeroMemory(&amp;wc, sizeof(wc));
	wc.cbSize			= sizeof(wc);
	wc.lpfnWndProc		= WndProc;
	wc.hInstance		= hInstance;
	wc.hIcon			= LoadIcon(NULL, IDI_WINLOGO);	//egal welches IDI_..., es ist immer dasselbe Icon im Fenster
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);	//funktioniert einwandfrei, jeder Standardcursor wird angezeigt
	wc.hbrBackground	= (HBRUSH)1;
	wc.lpszClassName	= &quot;ClassName&quot;;
	wc.hIconSm			= LoadIcon(NULL, IDI_WINLOGO);	//dasselbe Problem
	RegisterClassEx(&amp;wc);

	HWND hwnd = CreateWindowEx(	WS_EX_CLIENTEDGE, &quot;ClassName&quot;, &quot;Title&quot;, WS_CLIPCHILDREN | WS_OVERLAPPEDWINDOW,
								CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

	ShowWindow(hwnd, nCmdShow);
	UpdateWindow(hwnd);

	MSG msg;
	while(GetMessage(&amp;msg, NULL, 0, 0)) {
		TranslateMessage(&amp;msg);
		DispatchMessage(&amp;msg);
	}

	return msg.wParam;
}
</code></pre>
<p>EDIT: Bin zwar nicht auf die Standardicons von Windows angewiesen, aber es wäre dennoch gut zu wissen, warum sowas triviales bei mir grade nicht funktioniert. Andere Icons kann ich per Resourcen problemlos laden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/236055/loadicon-null-idi_-liefert-immer-nur-das-gleiche-standardicon</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 21:56:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/236055.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Mar 2009 12:05:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to LoadIcon(NULL, IDI_*) liefert immer nur das gleiche Standardicon on Tue, 10 Mar 2009 12:11:36 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich bekomme beim Laden von Standardicons für mein Fenster immer nur ein und dasselbe Standardicon angezeigt, egal ob ich LoadIcon IDI_APPLICATION, IDI_WINLOGO oder eine der anderen Standardbezeichner für Icons übergebe. Das Programm kompiliert und läuft einwandfrei.</p>
<p>Habe gegoogelt und hier die Suche-Funktion bemüht, aber augenscheinlich bin ich tatsächlich der einzige, der dieses Probelm hat. Weiß jemand wieso das sein kann? An irgendwas muss es ja liegen, zumal ich mit LoadCursor ohne Probleme jeden Standardcursor laden kann.</p>
<p>Auch wenn's wahrscheinlich nicht viel bringt, gebe ich mal einen lauffähigen (und auch völlig trivialen) Beispielcode an, der aber geschildertes Problem hat (zumindest auf meinem Rechner):</p>
<pre><code class="language-cpp">//main.cpp

#include &lt;windows.h&gt;

LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
	switch(uMsg) {
		case WM_CLOSE:
			DestroyWindow(hwnd);
			break;

		case WM_DESTROY:
			PostQuitMessage(0);
			break;

		default:
			return DefWindowProc(hwnd, uMsg, wParam, lParam);
	}

	return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {

	WNDCLASSEX wc;
	ZeroMemory(&amp;wc, sizeof(wc));
	wc.cbSize			= sizeof(wc);
	wc.lpfnWndProc		= WndProc;
	wc.hInstance		= hInstance;
	wc.hIcon			= LoadIcon(NULL, IDI_WINLOGO);	//egal welches IDI_..., es ist immer dasselbe Icon im Fenster
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);	//funktioniert einwandfrei, jeder Standardcursor wird angezeigt
	wc.hbrBackground	= (HBRUSH)1;
	wc.lpszClassName	= &quot;ClassName&quot;;
	wc.hIconSm			= LoadIcon(NULL, IDI_WINLOGO);	//dasselbe Problem
	RegisterClassEx(&amp;wc);

	HWND hwnd = CreateWindowEx(	WS_EX_CLIENTEDGE, &quot;ClassName&quot;, &quot;Title&quot;, WS_CLIPCHILDREN | WS_OVERLAPPEDWINDOW,
								CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

	ShowWindow(hwnd, nCmdShow);
	UpdateWindow(hwnd);

	MSG msg;
	while(GetMessage(&amp;msg, NULL, 0, 0)) {
		TranslateMessage(&amp;msg);
		DispatchMessage(&amp;msg);
	}

	return msg.wParam;
}
</code></pre>
<p>EDIT: Bin zwar nicht auf die Standardicons von Windows angewiesen, aber es wäre dennoch gut zu wissen, warum sowas triviales bei mir grade nicht funktioniert. Andere Icons kann ich per Resourcen problemlos laden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1677261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1677261</guid><dc:creator><![CDATA[Bier]]></dc:creator><pubDate>Tue, 10 Mar 2009 12:11:36 GMT</pubDate></item><item><title><![CDATA[Reply to LoadIcon(NULL, IDI_*) liefert immer nur das gleiche Standardicon on Tue, 10 Mar 2009 21:36:12 GMT]]></title><description><![CDATA[<p>Dieses Verhalten kann auftreten, weil einige Systemkomponenten und Programme von Fremdanbietern IDI_WINLOGO als lpIconName in den LoadIcon-Eigenschaften angeben. Wird IDI_WINLOGO angegeben, erscheint statt des Windows-Logo-Symbols ein allgemeines Fenstersymbol als Systemmenü-Symbol.</p>
<p>Es handelt sich hierbei um ein programmtechnisch bedingtes Verhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1677698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1677698</guid><dc:creator><![CDATA[asdca]]></dc:creator><pubDate>Tue, 10 Mar 2009 21:36:12 GMT</pubDate></item><item><title><![CDATA[Reply to LoadIcon(NULL, IDI_*) liefert immer nur das gleiche Standardicon on Wed, 11 Mar 2009 00:43:48 GMT]]></title><description><![CDATA[<p>Auha, danke für des Rätsels Lösung. Jetzt kann ich wieder ruhig schlafen <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>Ciao.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1677764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1677764</guid><dc:creator><![CDATA[Bier]]></dc:creator><pubDate>Wed, 11 Mar 2009 00:43:48 GMT</pubDate></item></channel></rss>