<?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[Scrollbar in DialogBox]]></title><description><![CDATA[<p>Hallo Leute.</p>
<p>Ich habe eine ScrollBar in einer DialogBox.</p>
<p>Die Message WM_HSCROLL habe ich schon behandelt. Dort habe ich case (wParam) für die Pfeile, Schäfte und die Start- und Endposition. Nun möchte ich aber auch noch SB_THUMBTRACK behandeln, aber WM_HSCROLL wird nicht mit dem wParam = SB_THUMBTRACK gesendet - heißt ich kann den ThumbTracker verschieben, aber beim Loslassen verharrt er in seiner ursprünglicchen Position.</p>
<p>Was muss ich tun, damit SB_THUMBTRACK in DialogBoxen gesendet wird? muss ich da was aktivieren?</p>
<p>Danke.</p>
<pre><code class="language-cpp">case WM_HSCROLL:
		switch (wParam)
		{
		case SB_LINELEFT:
		case SB_LINERIGHT:
		case SB_PAGELEFT:
		case SB_PAGERIGHT:
		case SB_TOP:
		case SB_BOTTOM:
			dwFrequency = GetScrollPos(GetDlgItem(hDlg, IDC_FREQ_BAR), SB_CTL);

			if (wParam == SB_LINELEFT)
			{
				if (dwFrequency &gt; FREQUENCY_MIN + 1)
					dwFrequency -= 2;
				else
					dwFrequency = FREQUENCY_MIN;
			}
			else if (wParam == SB_LINERIGHT)
			{
				if (dwFrequency &lt; FREQUENCY_MAX - 1)
					dwFrequency += 2;
				else
					dwFrequency = FREQUENCY_MAX;
			}
			else if (wParam == SB_PAGELEFT)
			{
				if (dwFrequency &gt; FREQUENCY_MIN + 19)
					dwFrequency -= 20;
				else
					dwFrequency = FREQUENCY_MIN;
			}
			else if (wParam == SB_PAGERIGHT)
			{
				if (dwFrequency &lt; FREQUENCY_MAX - 19)
					dwFrequency += 20;
				else
					dwFrequency = FREQUENCY_MAX;
			}
			else if (wParam == SB_TOP)
				dwFrequency = FREQUENCY_MIN;
			else
				dwFrequency = FREQUENCY_MAX;

			SetScrollPos(GetDlgItem(hDlg, IDC_FREQ_BAR), SB_CTL, (int)dwFrequency, TRUE);
			SetDlgItemInt(hDlg, IDC_FREQ_VALUE, (int)dwFrequency, FALSE);
			break;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/217287/scrollbar-in-dialogbox</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 11:10:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/217287.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 05 Jul 2008 20:49:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Scrollbar in DialogBox on Sat, 05 Jul 2008 20:49:06 GMT]]></title><description><![CDATA[<p>Hallo Leute.</p>
<p>Ich habe eine ScrollBar in einer DialogBox.</p>
<p>Die Message WM_HSCROLL habe ich schon behandelt. Dort habe ich case (wParam) für die Pfeile, Schäfte und die Start- und Endposition. Nun möchte ich aber auch noch SB_THUMBTRACK behandeln, aber WM_HSCROLL wird nicht mit dem wParam = SB_THUMBTRACK gesendet - heißt ich kann den ThumbTracker verschieben, aber beim Loslassen verharrt er in seiner ursprünglicchen Position.</p>
<p>Was muss ich tun, damit SB_THUMBTRACK in DialogBoxen gesendet wird? muss ich da was aktivieren?</p>
<p>Danke.</p>
<pre><code class="language-cpp">case WM_HSCROLL:
		switch (wParam)
		{
		case SB_LINELEFT:
		case SB_LINERIGHT:
		case SB_PAGELEFT:
		case SB_PAGERIGHT:
		case SB_TOP:
		case SB_BOTTOM:
			dwFrequency = GetScrollPos(GetDlgItem(hDlg, IDC_FREQ_BAR), SB_CTL);

			if (wParam == SB_LINELEFT)
			{
				if (dwFrequency &gt; FREQUENCY_MIN + 1)
					dwFrequency -= 2;
				else
					dwFrequency = FREQUENCY_MIN;
			}
			else if (wParam == SB_LINERIGHT)
			{
				if (dwFrequency &lt; FREQUENCY_MAX - 1)
					dwFrequency += 2;
				else
					dwFrequency = FREQUENCY_MAX;
			}
			else if (wParam == SB_PAGELEFT)
			{
				if (dwFrequency &gt; FREQUENCY_MIN + 19)
					dwFrequency -= 20;
				else
					dwFrequency = FREQUENCY_MIN;
			}
			else if (wParam == SB_PAGERIGHT)
			{
				if (dwFrequency &lt; FREQUENCY_MAX - 19)
					dwFrequency += 20;
				else
					dwFrequency = FREQUENCY_MAX;
			}
			else if (wParam == SB_TOP)
				dwFrequency = FREQUENCY_MIN;
			else
				dwFrequency = FREQUENCY_MAX;

			SetScrollPos(GetDlgItem(hDlg, IDC_FREQ_BAR), SB_CTL, (int)dwFrequency, TRUE);
			SetDlgItemInt(hDlg, IDC_FREQ_VALUE, (int)dwFrequency, FALSE);
			break;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1541589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541589</guid><dc:creator><![CDATA[DialogBox]]></dc:creator><pubDate>Sat, 05 Jul 2008 20:49:06 GMT</pubDate></item><item><title><![CDATA[Reply to Scrollbar in DialogBox on Mon, 07 Jul 2008 11:35:52 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>die WM_HSCROLL-Nachricht wird falsch behandelt, denn:</p>
<p>MSDN-Doku schrieb:</p>
<blockquote>
<p>The <strong>low-order</strong> word specifies a scroll bar value that indicates the user's scrolling request.<br />
The high-order word specifies the current position of the scroll box if the low-order word is SB_THUMBPOSITION or SB_THUMBTRACK; otherwise, this word is not used.</p>
</blockquote>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1542511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1542511</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Mon, 07 Jul 2008 11:35:52 GMT</pubDate></item></channel></rss>