<?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[Erstellung eines Gui Threads klappt nicht so richtig :)]]></title><description><![CDATA[<p>Hi,</p>
<p>erstmal entschuldige ich mich für den komischen Threadtitel aber mir fällt echt nichts ein was mein Problem beschreiben könnte...</p>
<p>Ich habe in meinem Programm eine längere Berechnung und möchte den Fortschritt in einem Extra Fenster mit eigenem GUI Thread anzeigen lassen. Jetzt habe ich wie auf <a href="http://www.codersource.net/mfc_user_interface_thread.html" rel="nofollow">http://www.codersource.net/mfc_user_interface_thread.html</a> beschreiben den GUI Thread erstellt. Der Start des Threads sieht so aus:</p>
<pre><code class="language-cpp">void CGUIThreadTestDlg::OnOK() 
{
     m_AusgabeThread  = new AusgabeFenster;
     m_AusgabeThread-&gt;CreateThread());
     m_AusgabeThread-&gt;PostThreadMessage(WM_MYTHREADMESSAGE,NULL,NULL); //WM_MYTHREADMESSAGE ruft die Fkt AusgabeFenster::MyMessageHandler auf

//testberechnung die eigentlich im Fenster angezeigt werden soll...
	for(int i = 0; i &lt; 20; i++)
	{
		CString Text;
		Text.Format(&quot;%d&quot;,i);
		if(m_AusgabeThread-&gt;m_Dlg)
			m_AusgabeThread-&gt;m_Dlg-&gt;SetzeText(Text);

		m_cbla.SetWindowText(Text);

		Sleep(1000);	
	}	
}
</code></pre>
<p>Im Thread Selber wird in der Funtkion MyMessageHandler der Dialog geöffnet. Ich hatte diesen Code auch schon in der InitInstance stehen (so wie es bei der ...App Klasse der Fall ist), aber das brachte mir auch nicht den erwünschten Effekt.</p>
<pre><code class="language-cpp">void AusgabeFenster::MyMessageHandler(WPARAM, LPARAM)
{
  	m_Dlg = new Dialog;
	//m_Dlg-&gt;Create(IDD_DIALOG1);
	m_Dlg-&gt;DoModal();
}
</code></pre>
<p>Allerdings erscheint der Dialog, der ja eigentlich das i aus der Schleife ausgeben soll, erst wenn diese zu ende ist. was mache ich falsch? Es bringt ja nichts ein Ausgabefenster zu erstellen wenn es erst nach der Berechnung angezeigt wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/156507/erstellung-eines-gui-threads-klappt-nicht-so-richtig</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 00:02:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/156507.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Aug 2006 10:46:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Erstellung eines Gui Threads klappt nicht so richtig :) on Thu, 17 Aug 2006 10:46:21 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>erstmal entschuldige ich mich für den komischen Threadtitel aber mir fällt echt nichts ein was mein Problem beschreiben könnte...</p>
<p>Ich habe in meinem Programm eine längere Berechnung und möchte den Fortschritt in einem Extra Fenster mit eigenem GUI Thread anzeigen lassen. Jetzt habe ich wie auf <a href="http://www.codersource.net/mfc_user_interface_thread.html" rel="nofollow">http://www.codersource.net/mfc_user_interface_thread.html</a> beschreiben den GUI Thread erstellt. Der Start des Threads sieht so aus:</p>
<pre><code class="language-cpp">void CGUIThreadTestDlg::OnOK() 
{
     m_AusgabeThread  = new AusgabeFenster;
     m_AusgabeThread-&gt;CreateThread());
     m_AusgabeThread-&gt;PostThreadMessage(WM_MYTHREADMESSAGE,NULL,NULL); //WM_MYTHREADMESSAGE ruft die Fkt AusgabeFenster::MyMessageHandler auf

//testberechnung die eigentlich im Fenster angezeigt werden soll...
	for(int i = 0; i &lt; 20; i++)
	{
		CString Text;
		Text.Format(&quot;%d&quot;,i);
		if(m_AusgabeThread-&gt;m_Dlg)
			m_AusgabeThread-&gt;m_Dlg-&gt;SetzeText(Text);

		m_cbla.SetWindowText(Text);

		Sleep(1000);	
	}	
}
</code></pre>
<p>Im Thread Selber wird in der Funtkion MyMessageHandler der Dialog geöffnet. Ich hatte diesen Code auch schon in der InitInstance stehen (so wie es bei der ...App Klasse der Fall ist), aber das brachte mir auch nicht den erwünschten Effekt.</p>
<pre><code class="language-cpp">void AusgabeFenster::MyMessageHandler(WPARAM, LPARAM)
{
  	m_Dlg = new Dialog;
	//m_Dlg-&gt;Create(IDD_DIALOG1);
	m_Dlg-&gt;DoModal();
}
</code></pre>
<p>Allerdings erscheint der Dialog, der ja eigentlich das i aus der Schleife ausgeben soll, erst wenn diese zu ende ist. was mache ich falsch? Es bringt ja nichts ein Ausgabefenster zu erstellen wenn es erst nach der Berechnung angezeigt wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1119059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1119059</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Thu, 17 Aug 2006 10:46:21 GMT</pubDate></item></channel></rss>