<?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[Progress Bar mit Verzögerung]]></title><description><![CDATA[<p>Hi ich hab ne Progress Bar die mir den Status eines Uploads anzeigt. Der Balken zeigt die richtige Position, die Prozentanzeige hat zunächst gar nicht funktioniert und geht erst seit ich sie in einer PreTranslateMessage Funktion des Dialogs ( welche das neue Dialogfenster aufruft ) geschrieben hab. Leider zeigt die Prozentanzeige keine konstant Aktualisierung sondern springt eher zu den Werten.<br />
1.Kann mir einer sagen wie ich das ändern kann oder woran das liegt ?</p>
<p>2.Ich habe einen Abbruch Button in meinem Upload-Dialog der auch funktioniert. Nur leider, funktioniert die ProgressBar-leiste nicht mehr wenn ich nach dem Abbruch wieder uploaden will. Der eigentliche Upload funktioniert aber schon noch, nur die Leiste nicht mehr. Kennt das Problem einer ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201793/progress-bar-mit-verzögerung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 14:31:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201793.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Jan 2008 08:21:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 08:51:23 GMT]]></title><description><![CDATA[<p>Hi ich hab ne Progress Bar die mir den Status eines Uploads anzeigt. Der Balken zeigt die richtige Position, die Prozentanzeige hat zunächst gar nicht funktioniert und geht erst seit ich sie in einer PreTranslateMessage Funktion des Dialogs ( welche das neue Dialogfenster aufruft ) geschrieben hab. Leider zeigt die Prozentanzeige keine konstant Aktualisierung sondern springt eher zu den Werten.<br />
1.Kann mir einer sagen wie ich das ändern kann oder woran das liegt ?</p>
<p>2.Ich habe einen Abbruch Button in meinem Upload-Dialog der auch funktioniert. Nur leider, funktioniert die ProgressBar-leiste nicht mehr wenn ich nach dem Abbruch wieder uploaden will. Der eigentliche Upload funktioniert aber schon noch, nur die Leiste nicht mehr. Kennt das Problem einer ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430404</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Fri, 04 Jan 2008 08:51:23 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 09:05:38 GMT]]></title><description><![CDATA[<p>mit ein wenig quellcode könnte man den fehler leichter finden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430419</guid><dc:creator><![CDATA[Machine]]></dc:creator><pubDate>Fri, 04 Jan 2008 09:05:38 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 09:19:02 GMT]]></title><description><![CDATA[<p>Der Code von der PreTranslateMessage :</p>
<pre><code class="language-cpp">BOOL CFenster::PreTranslateMessage(MSG* pMsg)
{
	strPercent = &quot;0 % (0 / 0 Bytes)&quot;;
	strPercent.Format(&quot;%i %% (%i / %i Bytes)&quot;,nPercent, nPosProgressBar, nFileSize); 
	m_Per = strPercent;
	SetDlgItemText(IDC_STATIC_F,m_Per);

	if(pMsg-&gt;message == WM_KEYDOWN)
     {
      // ESC-Taste abfangen
      if(pMsg-&gt;wParam == VK_ESCAPE)
      {
        return 0;
      }

      // Enter-Taste abfangen
      if(pMsg-&gt;wParam == VK_RETURN)
      {
        return 0;
      }
    }

    return CDialog::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Der Code vom Upload-thread :</p>
<pre><code class="language-cpp">UINT CFTP2Dlg::thrdFunc(LPVOID pParam)
{

CFTP2Dlg* pThis = (CFTP2Dlg*) pParam;

char cReadBuffer[512];	

pThis-&gt;m_Fenster.m_Progress.SendMessage(PBM_SETBARCOLOR, 0, (LPARAM)RGB(0, 255, 0));

CString Dateiname;		
pThis-&gt;GetDlgItemText(IDC_EDIT24,Dateiname);

CFile pLocalFile(pThis-&gt;Command2,CFile::modeRead | CFile::typeBinary); 
CStdioFile* pNetFile;	
pThis-&gt;m_Fenster.nFileSize = pLocalFile.SeekToEnd();
pLocalFile.SeekToBegin();

pNetFile = pThis-&gt;pFTPConnection-&gt;OpenFile(Dateiname,GENERIC_WRITE,FTP_TRANSFER_TYPE_BINARY,1);

pThis-&gt;m_Fenster.m_Progress.SetRange32(0,100);

/*
pThis-&gt;m_Fenster.strPercent = &quot;0 % (0 / 0 Bytes)&quot;;
pThis-&gt;m_Fenster.strPercent.Format(&quot;%i %% (%i / %i Bytes)&quot;,pThis-&gt;m_Fenster.nPercent, pThis-&gt;m_Fenster.nPosProgressBar, pThis-&gt;m_Fenster.nFileSize); 
pThis-&gt;m_Fenster.m_Per = pThis-&gt;m_Fenster.strPercent;
pThis-&gt;SetDlgItemText(IDC_STATIC_F,pThis-&gt;m_Fenster.m_Per);
*/

// 1.

while(pThis-&gt;nBytesToWrite = pLocalFile.Read(cReadBuffer,512))
	{
             pThis-&gt;m_Fenster.nPosProgressBar += pThis-&gt;nBytesToWrite; 
	     pNetFile-&gt;Write(cReadBuffer,pThis-&gt;nBytesToWrite);
             pThis-&gt;m_Fenster.nPercent = pThis-&gt;m_Fenster.nPosProgressBar * 100 / pThis-&gt;m_Fenster.nFileSize; 
             pThis-&gt;m_Fenster.m_Progress.SetPos(pThis-&gt;m_Fenster.nPercent);

               if(pThis-&gt;m_Fenster.Beenden == 1)
					{
                                          //es wurde abgebrochen
                                        }

        }

pNetFile-&gt;Close();
pLocalFile.Close();

pThis-&gt;m_Fenster.m_Progress.SetPos(0); 

...
</code></pre>
<p>Der ausgeblendete Code (1) ist derselbe wie in der PreTranslateM. , nur leider funktioniert das nicht. Kann man nicht auf StaticText felder zugreifen die in einem anderen Dialog stehen ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430426</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Fri, 04 Jan 2008 09:19:02 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 09:36:21 GMT]]></title><description><![CDATA[<p>Ich hab hier ja auch schon einige Posts zum Thema Threads gehabt. Die einhellige Meinung war: Greife nie aus einem Thread direkt auf GUI-Elemente zu. Und genau das machst du. Konstrukte ala pThis-&gt;.... gehen zwar theoretisch, aber das ganze ist nicht threadsicher. Baue besser in die Threadfunktion die ganze Berechnung des Fortschritts ein und sende den dann mittels Postmessage an den Dialog und lass ihn neu zeichnen. Sonst kann das Verhalten unbestimmt sein. Ich weiß jetzt zwar nicht ob das dein Problem ist, aber es könnte ein Ansatz sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430444</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Fri, 04 Jan 2008 09:36:21 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 10:18:38 GMT]]></title><description><![CDATA[<p>Hmmmm ok danke für den Hinweis. Werd mal gucken ob ich das anders machen kann</p>
<p>Edit : Also irgendwas stimmt da nicht, ok ich zeichne aus dem Thread heraus, aber daran liegt es nicht, das zb das hier :</p>
<pre><code class="language-cpp">pThis-&gt;m_Fenster.strPercent = &quot;0 % (0 / 0 Bytes)&quot;;
pThis-&gt;m_Fenster.strPercent.Format(&quot;%i %% (%i / %i Bytes)&quot;,pThis-&gt;m_Fenster.nPercent, pThis-&gt;m_Fenster.nPosProgressBar, pThis-&gt;m_Fenster.nFileSize); 
pThis-&gt;m_Fenster.m_Per = pThis-&gt;m_Fenster.strPercent;
pThis-&gt;SetDlgItemText(IDC_STATIC_F,pThis-&gt;m_Fenster.m_Per);
</code></pre>
<p>keine Ausgabe im StaticText Feld IDC_STATIC_F gibt.<br />
Wenn ich genau dieses Static Text Feld schon beim start heraus ( nicht per Thread ) beschriften will, funktioniert das genauso wenig :</p>
<pre><code class="language-cpp">m_Fenster.strPercent = &quot;0 % (0 / 0 Bytes)&quot;;
m_Fenster.strPercent.Format(&quot;%i %% (%i / %i Bytes)&quot;,m_Fenster.nPercent, m_Fenster.nPosProgressBar, m_Fenster.nFileSize); 
m_Fenster.m_Per = m_Fenster.strPercent;
SetDlgItemText(IDC_STATIC_F,m_Fenster.m_Per);
</code></pre>
<p>Warum kann ich aus meinem Hauptdialog nicht auf StaticText Felder von anderen Dialogen zugreifen?</p>
<p>Das geht auch nicht :</p>
<pre><code class="language-cpp">CString strNeu;
strNeu = &quot;Hallo&quot;;
m_Fenster.m_Per = strNeu;  // m_Per = CString Membervariable auf das Statictextfeld von CFenster
SetDlgItemText(IDC_STATIC_F,m_Fenster.m_Per);
</code></pre>
<p>Wenn ich genau dieses Beispiel in einem Textfeld von dem Hauptdialog ausführe, dann geht das schon, nur nicht in einem des anderen Dialogs, woran liegt das den ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430450</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Fri, 04 Jan 2008 10:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 10:51:02 GMT]]></title><description><![CDATA[<p>toxor schrieb:</p>
<blockquote>
<p>Hmmmm ok danke für den Hinweis. Werd mal gucken ob ich das anders machen kann</p>
</blockquote>
<p>Solltest Du. Hast Du eine SDi-Anwendung? Dann leg im Doc die Variablen ab und übergib dem Thread einen Zeiger aufs Doc. Dann ist noch schön auf die Synchronisierung zu achten (Stichwort CCriticalSection, CSingleLock, etc.). Dann aus dem Thread eine Nachricht zum Neuzeichnen schicken. Beim Dialog hab ichs noch nicht gemacht. Ich denke aber, dass Du im Thread rechnen solltest und den String zur Anzeige als Parameter der Message mitschickst.</p>
<p>toxor schrieb:</p>
<blockquote>
<p>keine Ausgabe im StaticText Feld IDC_STATIC_F gibt.<br />
Wenn ich genau dieses Static Text Feld schon beim start heraus ( nicht per Thread ) beschriften will, funktioniert das genauso wenig :</p>
</blockquote>
<p>Wann machst Du das denn? Existier deine Ansichtsklasse zu dieser Zeit schon? Zu dem anderen Problem: hast Du der Ansichtsklasse gesagt, dass sie sich neuzeichnen soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430485</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Fri, 04 Jan 2008 10:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 11:04:05 GMT]]></title><description><![CDATA[<p>Also zb in der OnInitDialog meines Hauptdialoges :</p>
<pre><code class="language-cpp">m_Fenster.Create(IDD_DIALOG1);
m_Fenster.ShowWindow(SW_SHOW);

CString strNeu;
strNeu = &quot;Hallo&quot;;
m_Fenster.m_Per = strNeu;  // m_Per = CString Membervariable auf das Statictextfeld von CFenster
SetDlgItemText(IDC_STATIC_F,m_Fenster.m_Per);
</code></pre>
<p>Sollte da jetzt nicht mein Zweitdialog durch, Creat aufgerufen worden sein mit dem Text &quot;Hallo&quot; in der IDC_STATIC_F ?</p>
<p>Leider sehe ich nix <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>
<p>Edit : Ok shit du hast recht, wenn ichs so mache :</p>
<pre><code class="language-cpp">CString strNeu;
strNeu = &quot;Hallo&quot;;
m_Fenster.m_Per = strNeu;  // m_Per = CString Membervariable auf das Statictextfeld von CFenster
SetDlgItemText(IDC_STATIC_F,m_Fenster.m_Per); 	
m_Fenster.Create(IDD_DIALOG1);
m_Fenster.ShowWindow(SW_SHOW);
</code></pre>
<p>dann gehts, hmmm gibts ne bessere alternative das Fenster neuzuzeichnen als UpdateData ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430492</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Fri, 04 Jan 2008 11:04:05 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 11:33:49 GMT]]></title><description><![CDATA[<p>toxor schrieb:</p>
<blockquote>
<p>hmmm gibts ne bessere alternative das Fenster neuzuzeichnen als UpdateData ?</p>
</blockquote>
<p>Du musst ja nicht das Fenster neuzeichnen, ggf. brauchst du nur dem Dialogfeldelemt sagen, dass es sich neuzeichnen soll. Wie soll man es sonst machen? Hast du Probleme mit Flackereffekten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430516</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Fri, 04 Jan 2008 11:33:49 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 11:36:02 GMT]]></title><description><![CDATA[<p>Also ich glaube so kommst du net weiter!</p>
<pre><code class="language-cpp">CString strNeu;  //für was wird der string erstellt?
strNeu = &quot;Hallo&quot;; //unnütz
//m_Fenster.m_Per = strNeu;  //unnütz
//besser:
m_Fenster.m_Per = &quot;Hallo&quot;;
//SetDlgItemText(IDC_STATIC_F,m_Fenster.m_Per);// willst du wirklich den text in IDC_STATIC_F in deinem Hauptdialog setzen glaub ich nicht lass die zeile weg dann geht es auch     
m_Fenster.Create(IDD_DIALOG1);
m_Fenster.ShowWindow(SW_SHOW);
</code></pre>
<p>Des weiteren beschäftige dich mal mit SendMessage, gib deinem Thread das Handle auf den Dialog von m_Fenster mit und sende dann eine UserMessage aus deinem Thread an den Dialog, dort kannst du dann auch mit UpdateData() arbeiten, alles andere is Mumpitz.</p>
<p>Wenn noch fragen sind dann stellen</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430519</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Fri, 04 Jan 2008 11:36:02 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 11:42:24 GMT]]></title><description><![CDATA[<p>CTecS schrieb:</p>
<blockquote>
<p>Also ich glaube so kommst du net weiter!</p>
<pre><code class="language-cpp">CString strNeu;  //für was wird der string erstellt?
strNeu = &quot;Hallo&quot;; //unnütz
//m_Fenster.m_Per = strNeu;  //unnütz
//besser:
m_Fenster.m_Per = &quot;Hallo&quot;;
//SetDlgItemText(IDC_STATIC_F,m_Fenster.m_Per);// willst du wirklich den text in IDC_STATIC_F in deinem Hauptdialog setzen glaub ich nicht lass die zeile weg dann geht es auch     
m_Fenster.Create(IDD_DIALOG1);
m_Fenster.ShowWindow(SW_SHOW);
</code></pre>
<p>Des weiteren beschäftige dich mal mit SendMessage, gib deinem Thread das Handle auf den Dialog von m_Fenster mit und sende dann eine UserMessage aus deinem Thread an den Dialog, dort kannst du dann auch mit UpdateData() arbeiten, alles andere is Mumpitz.</p>
<p>Wenn noch fragen sind dann stellen</p>
<p>Gruß Matthias</p>
</blockquote>
<p>hab ich ihm doch schon geraten. Aber SendMessage im nem Thread is nicht gut. Das wartet doch auf ein return. Besser ist ::PostMessage zu verwenden. Ich geb dir Recht, einiges im geposteten Code ist sinnfrei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430525</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Fri, 04 Jan 2008 11:42:24 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 11:43:52 GMT]]></title><description><![CDATA[<p>toxor schrieb:</p>
<blockquote>
<p>Warum kann ich aus meinem Hauptdialog nicht auf StaticText Felder von anderen Dialogen zugreifen?</p>
<p>Das geht auch nicht :</p>
<pre><code class="language-cpp">CString strNeu;
strNeu = &quot;Hallo&quot;;
m_Fenster.m_Per = strNeu;  // m_Per = CString Membervariable auf das Statictextfeld von CFenster
SetDlgItemText(IDC_STATIC_F,m_Fenster.m_Per);
</code></pre>
<p>Wenn ich genau dieses Beispiel in einem Textfeld von dem Hauptdialog ausführe, dann geht das schon, nur nicht in einem des anderen Dialogs, woran liegt das den ?</p>
</blockquote>
<p>SetDlgItemText(IDC_STATIC_F,m_Fenster.m_Per); greift auf IDC_STATIC_F des Hauptdialoges zu, wenn überhaupt, dann m_Fenster.SetDlgItemText(.....)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430528</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 04 Jan 2008 11:43:52 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 12:42:04 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9007">@jencas</a> :<br />
Ohhh stimmt, da hab ich das vergessen, aber warum erkennt er das den überhaupt SetDlgItemText(IDC_STATIC_F,...) ? Ich hab nur in meinem neuen Dialog so eine ID ( In meinem Hauptdialog gibts IDC_STATIC_F nicht).</p>
<p>Und warum funktioniert das dann andersherum schon ?</p>
<pre><code class="language-cpp">...
SetDlgItemText(IDC_STATIC_F,m_Fenster.m_Per);    
m_Fenster.Create(IDD_DIALOG1);
m_Fenster.ShowWindow(SW_SHOW);
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19426">@CTecS</a> :<br />
naja ist ja nur ein Beispiel, weil ich ne ähnliche Stringübergabe im Thread verwende. Dein Tip mit SendMessage werde ich versuchen. Du meinst wenn SetDlgItemText(IDC_STATIC_F,...) weglasse dann gehts ? Also ehrlich gesagt funktioniert das von dir zitierte Beispiel so auch... hab ich oben aber auch geschrieben.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6191">@AndyDD</a> :<br />
Ja der Weg mit PostMessage scheint der richtige zu sein. Allerdings scheint das doch wieder mit ziemlich viel Action verbunden zu sein und gucke ob ich nicht doch irgendwie ne leichtere Lösung finde.</p>
<p>Leider kann ich erst wieder am Montag weiterbasteln <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/1430571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430571</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Fri, 04 Jan 2008 12:42:04 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 12:57:23 GMT]]></title><description><![CDATA[<p>Action? Du bist gut. Das Programmieren mit Threads is nun mal nicht so simpel. Man sollte sich immer einen sauberen Weg einfallen lassen. Wie CTecS schon sagte ist mancher Murcks sicher lauffähig, aber unter gewissen Konstellationen schmiert dir die Anwendung ab oder verhält sich komisch. Dann den Fehler zu finden ist noch viel komplizierter. Da hab ich auch Lehrgeld zahlen müssen. Trotzdem: nimm PostMessage... Es gibt nach eine andere Möglichkeit über Events zu kommunizieren, ist aber in meinen Augen für die Sache hier völlig übers Ziel hinaus. Also: einfacher wirst du es nicht realisieren können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430591</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Fri, 04 Jan 2008 12:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 15:14:13 GMT]]></title><description><![CDATA[<p>toxor schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9007">@jencas</a> :<br />
Ohhh stimmt, da hab ich das vergessen, aber warum erkennt er das den überhaupt SetDlgItemText(IDC_STATIC_F,...) ? Ich hab nur in meinem neuen Dialog so eine ID ( In meinem Hauptdialog gibts IDC_STATIC_F nicht).</p>
</blockquote>
<p>SetDlgItemText() ist eine Methode von CDialog und damit auch von Deinem Hauptdialog. Und die IDC_s sind ja nicht Dialog-lokal sondern stehen in resource.h und sind somit überall bekannt, wo resource.h included wird und das ist nun mal bei jedem Dialog der Fall. Der Compiler kann nicht erkennen, dass Du einen falschen Parameter übergibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430663</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 04 Jan 2008 15:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 16:14:10 GMT]]></title><description><![CDATA[<p>Hmm na gut, werds ausprobieren <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="🙂"
    /> , bin gespannt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430695</guid><dc:creator><![CDATA[toxor]]></dc:creator><pubDate>Fri, 04 Jan 2008 16:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Fri, 04 Jan 2008 21:12:15 GMT]]></title><description><![CDATA[<p>Brauchst du eigentlich nicht gespannt zu sein, wenn Du das einmal mit den UserMessages und PostMessage(ich steite mich jetzt nicht mit AndyDD darüber´was nun besser is) verstanden hast, is das ganz einfach. Ich selbst benutze das system sogar wenn ich Funktionen anderer Dialoge aufrufen will (also von Dialog zu Dialog) und einfacher geht es nun wirklich nicht. Meist kannste so gemeinsame zugriffe auf Variablen verhindern, wodurch Du dir die Syncronisation ersparen kannst.</p>
<p>nachmal für AndyDD (Kann mir das net verkneifen) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Postmessage = wird einfach versand ohne das ergebnis abzuwarten<br />
Sendmessage = wartet so lange bis die Message ausgeführt ist und kehrt dann mit dem Ergebnis zurück</p>
<p>Je nach einsatzfalls is das eine oder das andere gut.</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430821</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Fri, 04 Jan 2008 21:12:15 GMT</pubDate></item><item><title><![CDATA[Reply to Progress Bar mit Verzögerung on Sun, 06 Jan 2008 09:22:32 GMT]]></title><description><![CDATA[<p>CTecS schrieb:</p>
<blockquote>
<p>Brauchst du eigentlich nicht gespannt zu sein, wenn Du das einmal mit den UserMessages und PostMessage(ich steite mich jetzt nicht mit AndyDD darüber´was nun besser is) verstanden hast, is das ganz einfach. Ich selbst benutze das system sogar wenn ich Funktionen anderer Dialoge aufrufen will (also von Dialog zu Dialog) und einfacher geht es nun wirklich nicht. Meist kannste so gemeinsame zugriffe auf Variablen verhindern, wodurch Du dir die Syncronisation ersparen kannst.</p>
<p>nachmal für AndyDD (Kann mir das net verkneifen) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Postmessage = wird einfach versand ohne das ergebnis abzuwarten<br />
Sendmessage = wartet so lange bis die Message ausgeführt ist und kehrt dann mit dem Ergebnis zurück</p>
<p>Je nach einsatzfalls is das eine oder das andere gut.</p>
<p>Gruß Matthias</p>
</blockquote>
<p>Wir streiten uns doch nicht. Aber wenn du mal weiter vorn liest, so hab ich genau das schon angemerkt. Nehmen wir mal an dein Thread schickt eine Message per Sendmessage raus, das Dialogfeld existiert aber zu dieser Zeit (warum auch immer nicht mehr). Dann wird wahrscheinlich das Programmm ewig auf das Abarbeiten der Message warten. Deshalb, und das wird hier in den meisten Posts zum Thema Threads empfohlen, ist PostMessage zu verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431651</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Sun, 06 Jan 2008 09:22:32 GMT</pubDate></item></channel></rss>