<?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[OnVScroll ändert den Wert nur auf 0]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte in meinem Prgramm ein Wert in der EditBox mit einer ScrollBar inkrementieren oder dekrementiere.<br />
Wenn ich auf up oder down klicke wird der Wert nicht inkrementier sondern nur auf 0 gesetzt und mehr geht da nicht.<br />
Da ich eine Dezimalstelle ändern will pro klick wird der Wert der Edit Box noch mit 10 multipliziert. Aber das wisst ihr sicher.</p>
<p>Den Wert auf 5 (Standard) setzen geht einwandfrei.</p>
<p>Hier der Code der die EditBox ändern sollte.</p>
<p>IDC_SPIN_BREITE - ScrollBar Breite<br />
IDC_E_BREITE - EditBox Breite<br />
IDC_SPIN_LAENGE - ScrollBar Laenge<br />
IDC_E_LAENGE - EditBox Laenge</p>
<p>m_strEBreite - CSTring von IDC_E_Breite<br />
m_strELaenge - CString von IDC_E_Laenge</p>
<p>diese Infos sollten reichen oder?</p>
<pre><code class="language-cpp">void CEingabe::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	if ( nSBCode == SB_ENDSCROLL ) 
	{ return ;   // falsche Nachrichten zurückweisen
	}

	if ( pScrollBar -&gt; GetDlgCtrlID() == IDC_SPIN_BREITE )
	{	m_dEBreite = double ( nPos ) / 10.0 ; 
		m_strEBreite . Format ( &quot;%2.1f&quot; , m_dEBreite ) ; 
		SetDlgItemText ( IDC_E_BREITE , m_strEBreite ) ; 
	}

	if ( pScrollBar -&gt; GetDlgCtrlID() == IDC_SPIN_LAENGE )
	{	m_dELaenge = double ( nPos ) / 10.0 ; 
		m_strELaenge . Format ( &quot;%2.1f&quot; , m_dELaenge ) ; 
		SetDlgItemText ( IDC_E_LAENGE , m_strELaenge ) ; 
	}
}
</code></pre>
<p>Hier werden die Daten noch geladen falls sie von Hand geändert werden.</p>
<pre><code class="language-cpp">void CEingabe::OnKillfocusEBreite() 
{
	int Drehfeldwert ; 

	GetDlgItemText ( IDC_E_BREITE , m_strEBreite ) ; 
	m_dEBreite = atof ( m_strEBreite ) ; 
	Drehfeldwert = int ( 10.0 * m_dEBreite ) ; 

	if (  ( Drehfeldwert &lt; 10 ) || ( 100 &lt; Drehfeldwert )  )
		Drehfeldwert = 50 ;		// bei falschem Wert: default setzen

	CSpinButtonCtrl * pSpin = ( CSpinButtonCtrl * ) GetDlgItem ( IDC_SPIN_BREITE ) ; 
	pSpin -&gt; SetPos ( Drehfeldwert ) ; 

	m_dEBreite = double ( Drehfeldwert ) / 10.0 ; 
	m_strEBreite . Format ( &quot;%2.1f&quot; , m_dEBreite ) ; 
	GetDlgItemText ( IDC_E_BREITE , m_strEBreite ) ; 
}
</code></pre>
<p>Danke für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142972/onvscroll-ändert-den-wert-nur-auf-0</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 07:30:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142972.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Apr 2006 17:20:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OnVScroll ändert den Wert nur auf 0 on Wed, 05 Apr 2006 06:19:19 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte in meinem Prgramm ein Wert in der EditBox mit einer ScrollBar inkrementieren oder dekrementiere.<br />
Wenn ich auf up oder down klicke wird der Wert nicht inkrementier sondern nur auf 0 gesetzt und mehr geht da nicht.<br />
Da ich eine Dezimalstelle ändern will pro klick wird der Wert der Edit Box noch mit 10 multipliziert. Aber das wisst ihr sicher.</p>
<p>Den Wert auf 5 (Standard) setzen geht einwandfrei.</p>
<p>Hier der Code der die EditBox ändern sollte.</p>
<p>IDC_SPIN_BREITE - ScrollBar Breite<br />
IDC_E_BREITE - EditBox Breite<br />
IDC_SPIN_LAENGE - ScrollBar Laenge<br />
IDC_E_LAENGE - EditBox Laenge</p>
<p>m_strEBreite - CSTring von IDC_E_Breite<br />
m_strELaenge - CString von IDC_E_Laenge</p>
<p>diese Infos sollten reichen oder?</p>
<pre><code class="language-cpp">void CEingabe::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	if ( nSBCode == SB_ENDSCROLL ) 
	{ return ;   // falsche Nachrichten zurückweisen
	}

	if ( pScrollBar -&gt; GetDlgCtrlID() == IDC_SPIN_BREITE )
	{	m_dEBreite = double ( nPos ) / 10.0 ; 
		m_strEBreite . Format ( &quot;%2.1f&quot; , m_dEBreite ) ; 
		SetDlgItemText ( IDC_E_BREITE , m_strEBreite ) ; 
	}

	if ( pScrollBar -&gt; GetDlgCtrlID() == IDC_SPIN_LAENGE )
	{	m_dELaenge = double ( nPos ) / 10.0 ; 
		m_strELaenge . Format ( &quot;%2.1f&quot; , m_dELaenge ) ; 
		SetDlgItemText ( IDC_E_LAENGE , m_strELaenge ) ; 
	}
}
</code></pre>
<p>Hier werden die Daten noch geladen falls sie von Hand geändert werden.</p>
<pre><code class="language-cpp">void CEingabe::OnKillfocusEBreite() 
{
	int Drehfeldwert ; 

	GetDlgItemText ( IDC_E_BREITE , m_strEBreite ) ; 
	m_dEBreite = atof ( m_strEBreite ) ; 
	Drehfeldwert = int ( 10.0 * m_dEBreite ) ; 

	if (  ( Drehfeldwert &lt; 10 ) || ( 100 &lt; Drehfeldwert )  )
		Drehfeldwert = 50 ;		// bei falschem Wert: default setzen

	CSpinButtonCtrl * pSpin = ( CSpinButtonCtrl * ) GetDlgItem ( IDC_SPIN_BREITE ) ; 
	pSpin -&gt; SetPos ( Drehfeldwert ) ; 

	m_dEBreite = double ( Drehfeldwert ) / 10.0 ; 
	m_strEBreite . Format ( &quot;%2.1f&quot; , m_dEBreite ) ; 
	GetDlgItemText ( IDC_E_BREITE , m_strEBreite ) ; 
}
</code></pre>
<p>Danke für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030464</guid><dc:creator><![CDATA[crolep]]></dc:creator><pubDate>Wed, 05 Apr 2006 06:19:19 GMT</pubDate></item><item><title><![CDATA[Reply to OnVScroll ändert den Wert nur auf 0 on Tue, 04 Apr 2006 18:00:09 GMT]]></title><description><![CDATA[<p>Standard schreibt man mit d.</p>
<p>Ich verstehe nicht, wieso du nicht einfach selbst inkrementierst?</p>
<pre><code class="language-cpp">if ( pScrollBar -&gt; GetDlgCtrlID() == IDC_SPIN_BREITE &amp;&amp; nSBCode sagt dass nach unten gescrollt wurde)
    {    m_dEBreite += 0.1d ; 
        m_strEBreite . Format ( &quot;%2.1f&quot; , m_dEBreite ) ; 
        SetDlgItemText ( IDC_E_BREITE , m_strEBreite ) ; 
    }
</code></pre>
<p>rest analog</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030502</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Tue, 04 Apr 2006 18:00:09 GMT</pubDate></item><item><title><![CDATA[Reply to OnVScroll ändert den Wert nur auf 0 on Wed, 05 Apr 2006 06:20:24 GMT]]></title><description><![CDATA[<p>Danke schön.</p>
<p>Wieso auch kompliziert, wenns einfach geht =).</p>
<p>Bin halt noch n Anfänger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030712</guid><dc:creator><![CDATA[crolep]]></dc:creator><pubDate>Wed, 05 Apr 2006 06:20:24 GMT</pubDate></item></channel></rss>