<?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[Eigenes Icon verwenden]]></title><description><![CDATA[<p>Hi,<br />
ich will ein eigenes Icon in der Titelleiste anzeigen, das klappt leider nicht.<br />
Meine Vorgehensweise:<br />
<a href="http://1.In" rel="nofollow">1.In</a> Ressourcen-Ansicht auf Icon klicken und ein Icon importieren, dadurch erscheint ein IDI_ICON1. (welches Symbol ich muss ich importieren, großes oder kleines? Ich habe beide.)<br />
2.Zu der Klasse CMeinDlg zwei member-Variablen hinzufügen, beide vom Typ HICON, etwa m_hLarge und m_hSmall. (hier bin ich nicht sicher, ob zwei nötig sind)<br />
<a href="http://3.Im" rel="nofollow">3.Im</a> Konstruktor CMeinDlg() Großes Icon laden:</p>
<pre><code class="language-cpp">m_hLarge = AfxGetApp()-&gt;LoadIcon(IDI_ICON1);
</code></pre>
<p>4.Kleines Icon laden:</p>
<pre><code class="language-cpp">m_hSmall = (HICON)::LoadImage(AfxGetInstanceHandle(),
                                      MAKEINTRESOURCE(IDI_ICON1),
                                      IMAGE_ICON, 16,16, LR_DEFAULTCOLOR);
</code></pre>
<p><a href="http://5.In" rel="nofollow">5.In</a> OnPaint() Symbole zeicnen:</p>
<pre><code class="language-cpp">void CMeineDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // Gerätekontext für Zeichnen

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Symbol in Client-Rechteck zentrieren
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&amp;rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Symbol zeichnen
		//dc.DrawIcon(x, y, m_hIcon);
		dc.DrawIcon(x, y, m_hLarge); //nur diese und die nächste Zeile habe ich hinzugefügt
		::DrawIconEx(dc,50,270,m_hSmall,0,0,0,NULL,DI_NORMAL);
	}
	else
	{
		CDialog::OnPaint();
	}
}
</code></pre>
<p>Wenn ich das vorgegebene Icon auskommentiere, habe ich nur ein leeres Feld in der Titelleiste... Was mache ich falsch? In FAQ habe nichts gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203591/eigenes-icon-verwenden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 15:40:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203591.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Jan 2008 09:13:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eigenes Icon verwenden on Thu, 24 Jan 2008 09:13:24 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich will ein eigenes Icon in der Titelleiste anzeigen, das klappt leider nicht.<br />
Meine Vorgehensweise:<br />
<a href="http://1.In" rel="nofollow">1.In</a> Ressourcen-Ansicht auf Icon klicken und ein Icon importieren, dadurch erscheint ein IDI_ICON1. (welches Symbol ich muss ich importieren, großes oder kleines? Ich habe beide.)<br />
2.Zu der Klasse CMeinDlg zwei member-Variablen hinzufügen, beide vom Typ HICON, etwa m_hLarge und m_hSmall. (hier bin ich nicht sicher, ob zwei nötig sind)<br />
<a href="http://3.Im" rel="nofollow">3.Im</a> Konstruktor CMeinDlg() Großes Icon laden:</p>
<pre><code class="language-cpp">m_hLarge = AfxGetApp()-&gt;LoadIcon(IDI_ICON1);
</code></pre>
<p>4.Kleines Icon laden:</p>
<pre><code class="language-cpp">m_hSmall = (HICON)::LoadImage(AfxGetInstanceHandle(),
                                      MAKEINTRESOURCE(IDI_ICON1),
                                      IMAGE_ICON, 16,16, LR_DEFAULTCOLOR);
</code></pre>
<p><a href="http://5.In" rel="nofollow">5.In</a> OnPaint() Symbole zeicnen:</p>
<pre><code class="language-cpp">void CMeineDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // Gerätekontext für Zeichnen

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Symbol in Client-Rechteck zentrieren
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&amp;rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Symbol zeichnen
		//dc.DrawIcon(x, y, m_hIcon);
		dc.DrawIcon(x, y, m_hLarge); //nur diese und die nächste Zeile habe ich hinzugefügt
		::DrawIconEx(dc,50,270,m_hSmall,0,0,0,NULL,DI_NORMAL);
	}
	else
	{
		CDialog::OnPaint();
	}
}
</code></pre>
<p>Wenn ich das vorgegebene Icon auskommentiere, habe ich nur ein leeres Feld in der Titelleiste... Was mache ich falsch? In FAQ habe nichts gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442570</guid><dc:creator><![CDATA[Noch_Student]]></dc:creator><pubDate>Thu, 24 Jan 2008 09:13:24 GMT</pubDate></item><item><title><![CDATA[Reply to Eigenes Icon verwenden on Thu, 24 Jan 2008 09:48:27 GMT]]></title><description><![CDATA[<p>CWnd::SetIcon verwenden, wenn Du nur die Darstellung oben in der Ecke ändern möchtest.<br />
<a href="http://msdn2.microsoft.com/en-us/library/9cb3b7b5.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/9cb3b7b5.aspx</a></p>
<p>Wenn das Icon mit dem Aplikations Icon verbunden sein soll, musst Du nur die entsprechende Auflösung für das Icon ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442592</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 24 Jan 2008 09:48:27 GMT</pubDate></item></channel></rss>