<?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[CProgressCtrl in nicht modalem Dialog &#x27;fernsteuern&#x27;]]></title><description><![CDATA[<p>Hello again,</p>
<p>in meiner App muss ich hin und wieder auch grössere Textfiles laden( &gt; 100 MB )und den Inhalt formatieren.<br />
Da bin ich auf die Idee gekommen, während des Ladens einen nicht modalen Dialog mit einer Progressbar anzuzeigen. Soweit, so gut. Der Dialog wird angezeigt, aber in der ProgressBar tut sich absolut nix.</p>
<p>Aufruf:</p>
<pre><code class="language-cpp">CProgressDlg prgDlg = new CProgressDlg();
	prgDlg.Create( IDD_PRGRS_DLG, this );
	prgDlg.InitValuesInDialog( _T(&quot;Liste wird erstellt ...&quot;) );
	prgDlg.ShowWindow(SW_SHOW);
	prgDlg.UpdateWindow();
</code></pre>
<p>Bei 'InitValuesInDialog' wird vorerst nur der String in ein Static im Dialog gesetzt. Funktioniert auch. Also Dialog ist da.</p>
<p>Dann soll die Pos in der ProgressBar gesetzt werden. Aufruf:</p>
<pre><code class="language-cpp">prgDlg.UpdateProgBar( prgs );
		prgDlg.UpdateWindow();
</code></pre>
<p>Die zugehörige Funktion:</p>
<pre><code class="language-cpp">void CProgressDlg::UpdateProgBar(int val)
{
	if( sp &gt;= 1000 )
		sp = 0;
	GetDlgItem(IDC_PROGRESS1)-&gt;GetScrollPos( sp );
	sp += val;
	GetDlgItem(IDC_PROGRESS1)-&gt;SetScrollPos( sp, true );
	GetDlgItem(IDC_PROGRESS1)-&gt;Invalidate();
}
</code></pre>
<p>sp ist eine int Vari aus dem Header.</p>
<p>Woran liegts?</p>
<p>Bitte her mit den Ideen, ich selbst hab keine mehr <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>grüssle <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="🙂"
    /></p>
<p>Edit: VC6 <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/198433/cprogressctrl-in-nicht-modalem-dialog-fernsteuern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 05:40:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198433.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Nov 2007 15:12:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CProgressCtrl in nicht modalem Dialog &#x27;fernsteuern&#x27; on Wed, 21 Nov 2007 15:31:40 GMT]]></title><description><![CDATA[<p>Hello again,</p>
<p>in meiner App muss ich hin und wieder auch grössere Textfiles laden( &gt; 100 MB )und den Inhalt formatieren.<br />
Da bin ich auf die Idee gekommen, während des Ladens einen nicht modalen Dialog mit einer Progressbar anzuzeigen. Soweit, so gut. Der Dialog wird angezeigt, aber in der ProgressBar tut sich absolut nix.</p>
<p>Aufruf:</p>
<pre><code class="language-cpp">CProgressDlg prgDlg = new CProgressDlg();
	prgDlg.Create( IDD_PRGRS_DLG, this );
	prgDlg.InitValuesInDialog( _T(&quot;Liste wird erstellt ...&quot;) );
	prgDlg.ShowWindow(SW_SHOW);
	prgDlg.UpdateWindow();
</code></pre>
<p>Bei 'InitValuesInDialog' wird vorerst nur der String in ein Static im Dialog gesetzt. Funktioniert auch. Also Dialog ist da.</p>
<p>Dann soll die Pos in der ProgressBar gesetzt werden. Aufruf:</p>
<pre><code class="language-cpp">prgDlg.UpdateProgBar( prgs );
		prgDlg.UpdateWindow();
</code></pre>
<p>Die zugehörige Funktion:</p>
<pre><code class="language-cpp">void CProgressDlg::UpdateProgBar(int val)
{
	if( sp &gt;= 1000 )
		sp = 0;
	GetDlgItem(IDC_PROGRESS1)-&gt;GetScrollPos( sp );
	sp += val;
	GetDlgItem(IDC_PROGRESS1)-&gt;SetScrollPos( sp, true );
	GetDlgItem(IDC_PROGRESS1)-&gt;Invalidate();
}
</code></pre>
<p>sp ist eine int Vari aus dem Header.</p>
<p>Woran liegts?</p>
<p>Bitte her mit den Ideen, ich selbst hab keine mehr <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>grüssle <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="🙂"
    /></p>
<p>Edit: VC6 <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/1407426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407426</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 21 Nov 2007 15:31:40 GMT</pubDate></item><item><title><![CDATA[Reply to CProgressCtrl in nicht modalem Dialog &#x27;fernsteuern&#x27; on Thu, 22 Nov 2007 09:48:52 GMT]]></title><description><![CDATA[<p>Verwende zustäzlich UpdateWindow, oder ersetze Invalidate durch RedrawWndow!</p>
<p>Merke: Invalidate zeichnet nicht neu, sondern vermrekt in dem Fenster, dass es sich neu Zeichnen soll, wenn die Message Loop wieder an die Reihekommt, das tut die aber nihct in Deinem Fall. Deshalb must der den Redraw forcieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407976</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 22 Nov 2007 09:48:52 GMT</pubDate></item><item><title><![CDATA[Reply to CProgressCtrl in nicht modalem Dialog &#x27;fernsteuern&#x27; on Thu, 22 Nov 2007 11:10:34 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Verwende zustäzlich UpdateWindow, oder ersetze Invalidate durch RedrawWndow!</p>
<p>Merke: Invalidate zeichnet nicht neu, sondern vermrekt in dem Fenster, dass es sich neu Zeichnen soll, wenn die Message Loop wieder an die Reihekommt, das tut die aber nihct in Deinem Fall. Deshalb must der den Redraw forcieren.</p>
</blockquote>
<pre><code class="language-cpp">prgDlg.UpdateProgBar( prgs );
        prgDlg.UpdateWindow();
</code></pre>
<p>siehe oben.</p>
<p>Habs aber mittlerweile gelöst. Enfach:<br />
SetScrollPos durch SetPos, und<br />
SetScrollRange durch SetRange<br />
ersetzt, und schon funktioniert es so wie es soll. <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="😕"
    /> aber <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="🙂"
    /></p>
<p>Danke trotzdem.</p>
<p>grüssle <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408048</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Thu, 22 Nov 2007 11:10:34 GMT</pubDate></item></channel></rss>