<?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[Anfänger verzweiflung mit OnPait()]]></title><description><![CDATA[<p>Nach 2 Stunden durchlesen von allen möglichen Lösungen aus diese Forum (ich weiss nicht weiter) ... muss ich doch die Frage stellen!</p>
<p>- Habe Dialogbasierte Anwendung<br />
- Von einen Dialog wird andere Aufgerufen</p>
<pre><code>if (m_dEditor.DoModal() == IDOK)
{
  CHotelDlg::OnPaint();
  Prozedur();  // dauert ca. 20 sekunden
}
</code></pre>
<p>Problem ist, daß mein Programm lässt sich mit alle ruhe erst die Prozedur() ausführen bevor HotelDlg wieder gezeigt wird... <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>
<p>Mein OnPaint() sieht so aus:</p>
<pre><code>void CHotelDlg::OnPaint(void)
{
	if (IsIconic())
	{
		CPaintDC dc(this); // Gerätekontext zum Zeichnen

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast&lt;WPARAM&gt;(dc.GetSafeHdc()), 0);

		// Symbol in Clientrechteck 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);
	}
	else
	{
		CDialog::OnPaint();
	}
}
</code></pre>
<p>Gibt`da einfache trick was ein Anfäger wiessen muss oder muss ich wieder stunden lang Bücher durch walzen...</p>
<p>Danke für dier Hilfe<br />
Adam</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/193155/anfänger-verzweiflung-mit-onpait</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 10:46:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/193155.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Sep 2007 23:45:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfänger verzweiflung mit OnPait() on Sat, 22 Sep 2007 23:45:52 GMT]]></title><description><![CDATA[<p>Nach 2 Stunden durchlesen von allen möglichen Lösungen aus diese Forum (ich weiss nicht weiter) ... muss ich doch die Frage stellen!</p>
<p>- Habe Dialogbasierte Anwendung<br />
- Von einen Dialog wird andere Aufgerufen</p>
<pre><code>if (m_dEditor.DoModal() == IDOK)
{
  CHotelDlg::OnPaint();
  Prozedur();  // dauert ca. 20 sekunden
}
</code></pre>
<p>Problem ist, daß mein Programm lässt sich mit alle ruhe erst die Prozedur() ausführen bevor HotelDlg wieder gezeigt wird... <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>
<p>Mein OnPaint() sieht so aus:</p>
<pre><code>void CHotelDlg::OnPaint(void)
{
	if (IsIconic())
	{
		CPaintDC dc(this); // Gerätekontext zum Zeichnen

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast&lt;WPARAM&gt;(dc.GetSafeHdc()), 0);

		// Symbol in Clientrechteck 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);
	}
	else
	{
		CDialog::OnPaint();
	}
}
</code></pre>
<p>Gibt`da einfache trick was ein Anfäger wiessen muss oder muss ich wieder stunden lang Bücher durch walzen...</p>
<p>Danke für dier Hilfe<br />
Adam</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370870</guid><dc:creator><![CDATA[adamacka]]></dc:creator><pubDate>Sat, 22 Sep 2007 23:45:52 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger verzweiflung mit OnPait() on Sun, 23 Sep 2007 06:19:05 GMT]]></title><description><![CDATA[<p>hmm statt aufrufen der funktion, mach doch mal ein invalidate() oder invalidateRect()!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370897</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Sun, 23 Sep 2007 06:19:05 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger verzweiflung mit OnPait() on Sun, 23 Sep 2007 14:40:54 GMT]]></title><description><![CDATA[<p>Handler Funktionen die mit On anfangen werden nicht von einem selber aufgerufen, sondern das Windows System ruft diese bei Bedarf auf.</p>
<p>Mach Dich bitte mit der Technik vertraut, indem Du einige Tutorials oder Bücher liest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1371044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1371044</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 23 Sep 2007 14:40:54 GMT</pubDate></item></channel></rss>