<?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[statusbar bleibt hängen?]]></title><description><![CDATA[<p>nabend leutz,<br />
hab an nem programm rumgebastelt, welches ein von mir erfundenes primitives bildformat speichern und anzeigen soll. Dieses Programm hat am unteren Rand ne statusbar. Doch leider scheint die irgendwie hängen zu bleiben, denn erneutes ändern des Texts funzt nicht. Auf der Statusbar hab ich noch ne progressbar, welche auch nicht mehr reagiert.</p>
<pre><code class="language-cpp">bool ReadArrayFromFile(HWND hwnd)
{
  char p[260]={0};
  int x=0, y=0, t;
  OPENFILENAME ofn;
  ZeroMemory(&amp;ofn, sizeof(OPENFILENAME));

  ofn.lStructSize=sizeof(OPENFILENAME);
  ofn.hwndOwner=hwnd;
  ofn.lpstrFile=p;
  ofn.lpstrFilter=&quot;Picture Dateien\0*.pic\0\0&quot;;
  ofn.nMaxFile=260;
  ofn.Flags=OFN_FILEMUSTEXIST | OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;

  if (!GetOpenFileName(&amp;ofn)) // Datei öffnen Dialog
    return true;

  ifstream f(p);

  ShowWindow(progress, SW_NORMAL); // Das macht er noch
  if (status)
    SendMessage(status, SB_SETTEXT, 0, (LPARAM)&quot;Datei wird geladen...&quot;); // Das auch

  while (!f.eof())
  {
    f &gt;&gt; t;
    if (t==2)
    {
      y++;
      x=0;
      // SendMessage(progress, PBM_STEPIT, 0, 0);
      continue;
    }

    if (x&gt;300 || y&gt;400)  // Schutz vor Buffer-Overflows
      break;

    pixel[x][y]=t;
    x++;
    SendMessage(progress, PBM_STEPIT, 0, 0); // Das scheint er nur noch beim ersten Durchlauf zu machen, denn die Progressbar hat noch einen balken
  }
  f.close();

  SendMessage(progress, PBM_SETPOS, 120000, 0); // Das macht er nicht mehr Message wird zwar gesendet (funktion kehrt zurück), aber wohl nicht mehr verarbeitet
  if (status)
    SendMessage(status, SB_SETTEXT, 0, (LPARAM)&quot;&quot;); // Das macht er auch nicht mehr (gleiches Problem

  HDC hdc=GetDC(hwnd);
  DrawArray(hdc);
  ReleaseDC(hwnd, hdc);
  return true;
}
</code></pre>
<p>hoffe ihr seht da was<br />
grüsse <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/238459/statusbar-bleibt-hängen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 22:04:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238459.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Apr 2009 19:09:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to statusbar bleibt hängen? on Sat, 11 Apr 2009 10:08:15 GMT]]></title><description><![CDATA[<p>nabend leutz,<br />
hab an nem programm rumgebastelt, welches ein von mir erfundenes primitives bildformat speichern und anzeigen soll. Dieses Programm hat am unteren Rand ne statusbar. Doch leider scheint die irgendwie hängen zu bleiben, denn erneutes ändern des Texts funzt nicht. Auf der Statusbar hab ich noch ne progressbar, welche auch nicht mehr reagiert.</p>
<pre><code class="language-cpp">bool ReadArrayFromFile(HWND hwnd)
{
  char p[260]={0};
  int x=0, y=0, t;
  OPENFILENAME ofn;
  ZeroMemory(&amp;ofn, sizeof(OPENFILENAME));

  ofn.lStructSize=sizeof(OPENFILENAME);
  ofn.hwndOwner=hwnd;
  ofn.lpstrFile=p;
  ofn.lpstrFilter=&quot;Picture Dateien\0*.pic\0\0&quot;;
  ofn.nMaxFile=260;
  ofn.Flags=OFN_FILEMUSTEXIST | OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;

  if (!GetOpenFileName(&amp;ofn)) // Datei öffnen Dialog
    return true;

  ifstream f(p);

  ShowWindow(progress, SW_NORMAL); // Das macht er noch
  if (status)
    SendMessage(status, SB_SETTEXT, 0, (LPARAM)&quot;Datei wird geladen...&quot;); // Das auch

  while (!f.eof())
  {
    f &gt;&gt; t;
    if (t==2)
    {
      y++;
      x=0;
      // SendMessage(progress, PBM_STEPIT, 0, 0);
      continue;
    }

    if (x&gt;300 || y&gt;400)  // Schutz vor Buffer-Overflows
      break;

    pixel[x][y]=t;
    x++;
    SendMessage(progress, PBM_STEPIT, 0, 0); // Das scheint er nur noch beim ersten Durchlauf zu machen, denn die Progressbar hat noch einen balken
  }
  f.close();

  SendMessage(progress, PBM_SETPOS, 120000, 0); // Das macht er nicht mehr Message wird zwar gesendet (funktion kehrt zurück), aber wohl nicht mehr verarbeitet
  if (status)
    SendMessage(status, SB_SETTEXT, 0, (LPARAM)&quot;&quot;); // Das macht er auch nicht mehr (gleiches Problem

  HDC hdc=GetDC(hwnd);
  DrawArray(hdc);
  ReleaseDC(hwnd, hdc);
  return true;
}
</code></pre>
<p>hoffe ihr seht da was<br />
grüsse <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1694123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694123</guid><dc:creator><![CDATA[player424]]></dc:creator><pubDate>Sat, 11 Apr 2009 10:08:15 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Fri, 10 Apr 2009 20:23:06 GMT]]></title><description><![CDATA[<p>Du brauchst eine ProcessMessages() aufrufen gleich nach PBM_STEPIT (oder fast egal wo in der Schleife, mimimal einmal/second):</p>
<pre><code class="language-cpp">void ProcessMessages()
{
	MSG msg;
	while (PeekMessage(&amp;msg,0,0,0,PM_REMOVE))
	{
		TranslateMessage(&amp;msg);
		DispatchMessage(&amp;msg);
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1694143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694143</guid><dc:creator><![CDATA[sapero]]></dc:creator><pubDate>Fri, 10 Apr 2009 20:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Fri, 10 Apr 2009 23:13:36 GMT]]></title><description><![CDATA[<p>danke, aber funzt leider auch nicht. immer noch genau wie vorher</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694202</guid><dc:creator><![CDATA[player424]]></dc:creator><pubDate>Fri, 10 Apr 2009 23:13:36 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Sat, 11 Apr 2009 06:36:58 GMT]]></title><description><![CDATA[<p>Wenn es nur um den Prograssbar geht muss man keine Messageloop haben. Es genügt ein Aufrud von UpdateWindow/RedrawWinodw für den Progressbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694247</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 11 Apr 2009 06:36:58 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Sat, 11 Apr 2009 10:06:49 GMT]]></title><description><![CDATA[<p>hilft alles nichts statusbar und progressbar sind einfach wie eingefroren. es lässt sich nichts mehr darauf anwenden. In einer anderen Funktion habe ich aber auch eine schleife welche das gleiche macht und dort funktioniert alles. Da wird folgendes gemacht: text in statusbar wird geändert, progressbar wird eingeblendet, und in der schleife erhöht. danach wird der text in der statusbar wieder geändert und die progressbar auf 100% gesetzt.<br />
Ein Programmierfehler meinerseits ist das meines erachtens nach nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694312</guid><dc:creator><![CDATA[player424]]></dc:creator><pubDate>Sat, 11 Apr 2009 10:06:49 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Sat, 11 Apr 2009 10:29:17 GMT]]></title><description><![CDATA[<p>1. Sehe ich kein SETPOS nach dem Anzeigen.<br />
2. Da SendMessage zurückkehrt wird auch die Nachricht verarbeitet.<br />
3. Was Du höchstens eben nicht wahrnimsst ist die Aktualisierung, weil kein WM_PAINT ausgelöst wird.</p>
<p>Ich gehe 100% von einem fehler bei Dir aus und nicht von Windows <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1694332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694332</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 11 Apr 2009 10:29:17 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Sat, 11 Apr 2009 10:46:11 GMT]]></title><description><![CDATA[<p>1. das setpos habe ich auch in der anderen funktion<br />
2. ja das weiss ich aber man müsste doch ne wirkung sehen<br />
3. wenn man keine aktualisierung wahrnimmt wäre das ja sowieso unnötig (?) <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>ich glaube nicht dadran, in der anderen funktion mache ich es genauso und da funzts<br />
edit: ok, ich hab schon die merkwürdigsten phänomene (hoffentlich richtig geschrieben) beim programmieren erlebt stimmt vielleicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694343</guid><dc:creator><![CDATA[player424]]></dc:creator><pubDate>Sat, 11 Apr 2009 10:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Sat, 11 Apr 2009 11:07:20 GMT]]></title><description><![CDATA[<p>Wenn man nur eine Nachricht sendet, heißt, das nicht das man etwas sieht. Aktualisierungen in der Ansicht werden nur durch WM_PAINT ausgelöst. WM_PAINT aber wird nur ausgelöscht, wenn UpdateWindow/RedrawWindow aufgerufen wird, oder eine MessageLoop läuft.</p>
<p>Da Du weder eine Message Loop hast, noch UpdateWindow/RedrawWindow ausführst kann es gut sein, dass Deine Nachrichten verarbeitet werden, aber keine visuelle Veränderung bewirken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694355</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 11 Apr 2009 11:07:20 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Sat, 11 Apr 2009 11:19:01 GMT]]></title><description><![CDATA[<p>wie gesagt ich hab es schon mit UpdateWindow probiert, aber es hilft leider nicht. auch ein neuzeichnen bringt nichts</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694368</guid><dc:creator><![CDATA[player424]]></dc:creator><pubDate>Sat, 11 Apr 2009 11:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Sat, 11 Apr 2009 11:47:30 GMT]]></title><description><![CDATA[<p>Dann musst Du mehr Code zeigen. Evtl. ist das Control nicht sichtbar, oder nicht komplett sichtbar.<br />
Ich habe ähnlichen Codee in meinen Programmen uns es klappt prima.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694395</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 11 Apr 2009 11:47:30 GMT</pubDate></item><item><title><![CDATA[Reply to statusbar bleibt hängen? on Sat, 11 Apr 2009 11:55:34 GMT]]></title><description><![CDATA[<p>gut hier noch etwas:</p>
<p>das ist jetzt die funktion in der alles funktioniert</p>
<pre><code class="language-cpp">bool WriteArrayToFile(HWND hwnd)
{
  int x=0, y=0;
  char pa[260]={0};
  OPENFILENAME op;
  ZeroMemory(&amp;op, sizeof(OPENFILENAME));

  op.lStructSize=sizeof(OPENFILENAME);
  op.hwndOwner=hwnd;
  op.lpstrDefExt=&quot;pic&quot;;
  op.lpstrFilter=&quot;Picture Dateien (*.pic)\0*.pic\0\0&quot;;
  op.lpstrFile=pa;
  op.nMaxFile=260;
  op.Flags=OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_OVERWRITEPROMPT;
  if (!GetSaveFileName(&amp;op)) // Dialog zum speichern
    return true;

  ofstream f(pa);

  ShowWindow(progress, SW_NORMAL); //macht er
  if (status)
    SendMessage(status, SB_SETTEXT, 0, (LPARAM)&quot;Speichern...&quot;); // macht er auch

  for (int i=0;i&lt;120000;i++)
  {
    if (x==300)
    {
      f &lt;&lt; &quot; &quot; &lt;&lt; static_cast&lt;int&gt;(pixel[x][y]);
      f &lt;&lt; &quot; &quot; &lt;&lt; 2;  // Neue Zeile
      x=0;
      y++;
    }

    f &lt;&lt; &quot; &quot; &lt;&lt; static_cast&lt;int&gt;(pixel[x][y]);
    x++;
    SendMessage(progress, PBM_STEPIT, 0, 0); // das macht er
  }
  if (f.fail())
    return false;

  f.close(); 
  if (status)
    SendMessage(status, SB_SETTEXT, 0, (LPARAM)pa); // das macht er auch
  SendMessage(progress, PBM_SETPOS, 120000, 0); // hier füllt er die progressbar zu 100%
  return true;
}
</code></pre>
<p>hier noch die wm_command in der beide funktionen aufgerufen werden</p>
<pre><code class="language-cpp">case WM_COMMAND:
    {
      switch (LOWORD(wparam))
      {
        case menuitem_save:
          if (!WriteArrayToFile(hwnd))
            MessageBox(hwnd, &quot;Fehler beim schreiben in die Datei&quot;, &quot;Fehler&quot;, MB_OK);
        break;

        case menuitem_close:
          SendMessage(hwnd, WM_CLOSE, 0, 0);
        break;

        case menuitem_new:
          clean(hwnd);
        break;

        case menuitem_\1:
          about(hwnd);
        break;

        case menuitem_black:
        case menuitem_red:
          SetCheck(hwnd, LOWORD(wparam));
        break;

        case menuitem_open:
          ReadArrayFromFile(hwnd);
        break;
      }
    return 0;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1694401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694401</guid><dc:creator><![CDATA[player424]]></dc:creator><pubDate>Sat, 11 Apr 2009 11:55:34 GMT</pubDate></item></channel></rss>