<?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[Drei Scrollbars in Dialogfenster auslesen (?)]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich muss vorweg sagen, dass ich bezüglich der WinAPI Programmierung nicht wirklich Ahnung habe. Ich soll jetzt aber bis Mittwoch ein Programm schreiben, bei dem man unter anderem in einer Dialogbox über drei Scrollbars einen Farbwert einstellen können soll. Dieser soll dann im Hauptfenster die Farbe eine Grafik ändern. Hört sich ziemlich simpel an, ist es ja vieleicht auch, nur ich bekomme das nicht hin. Als &quot;Hilfe&quot; habe ich dieses Dokument bekommen: (<a href="http://www.erlenkoetter.de/cfw/cfw-05.htm" rel="nofollow">www.erlenkoetter.de/cfw/cfw-05.htm</a>). Leider ist das Beispiel noch aus Win3.11 Zeiten und basiert auf einer uralten Borland C++ Version. Es hat mich ja schon einige Zeit gekostet diese ganzen &quot;LONG FAR PASCAL&quot; Sachen in etwas umzuwandeln was mein Dev-C++/gcc vesteht.</p>
<p>Also mein Problem ist jetzt, wie lese ich die drei Scrollbars aus?</p>
<p>Also ich habe eine &quot;dialoge.rc&quot; Datei in der ich die Scrollbars definiert habe:</p>
<pre><code class="language-cpp">IDD_DIALOG_COLORS DIALOG DISCARDABLE  0, 0, 430, 110
[...]
SCROLLBAR       ID_SCROLLBAR_R1, 15, 30, 100, 10
SCROLLBAR       ID_SCROLLBAR_G1, 15, 45, 100, 10
SCROLLBAR       ID_SCROLLBAR_B1, 15, 60, 100, 10
</code></pre>
<p>Und im Hauptprogramm habe ich für diese Dialogbox stehen:</p>
<pre><code class="language-cpp">BOOL CALLBACK ColorsDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
[...]
switch(message)
    {
        case WM_INITDIALOG:
          // Hier stelle ich die Scrollbars ein
          SetScrollRange(GetDlgItem(hWnd,ID_SCROLLBAR_R1)......
          SetScrollPos(GetDlgItem(hWnd,ID_SCROLLBAR_R1), SB_CTL, R1, TRUE);
</code></pre>
<p>Jetzt dachte ich, ich könnte mit</p>
<pre><code class="language-cpp">switch(message)
    {
      case WM_HSCROLL:
          switch(LOWORD(wParam))
            {
               case SB_LINEUP;
               position=position+1;
               break;
               case SB_LINEDOWN;
               position=position-1;
               break;
             }
      }
}
</code></pre>
<p>die Werte auslesen. Aber wie sag ich um welche Scrollbar es sich handelt?<br />
Oder mache ich mir das alles zu kompliziert?</p>
<p>Ich bin über jeden noch so kleinen Tip dankbar!</p>
<p>Vielen Dank!!!!</p>
<p>Gruß<br />
Thorsten</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/106420/drei-scrollbars-in-dialogfenster-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 16:13:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/106420.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 09 Apr 2005 18:21:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Drei Scrollbars in Dialogfenster auslesen (?) on Sat, 09 Apr 2005 18:21:35 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich muss vorweg sagen, dass ich bezüglich der WinAPI Programmierung nicht wirklich Ahnung habe. Ich soll jetzt aber bis Mittwoch ein Programm schreiben, bei dem man unter anderem in einer Dialogbox über drei Scrollbars einen Farbwert einstellen können soll. Dieser soll dann im Hauptfenster die Farbe eine Grafik ändern. Hört sich ziemlich simpel an, ist es ja vieleicht auch, nur ich bekomme das nicht hin. Als &quot;Hilfe&quot; habe ich dieses Dokument bekommen: (<a href="http://www.erlenkoetter.de/cfw/cfw-05.htm" rel="nofollow">www.erlenkoetter.de/cfw/cfw-05.htm</a>). Leider ist das Beispiel noch aus Win3.11 Zeiten und basiert auf einer uralten Borland C++ Version. Es hat mich ja schon einige Zeit gekostet diese ganzen &quot;LONG FAR PASCAL&quot; Sachen in etwas umzuwandeln was mein Dev-C++/gcc vesteht.</p>
<p>Also mein Problem ist jetzt, wie lese ich die drei Scrollbars aus?</p>
<p>Also ich habe eine &quot;dialoge.rc&quot; Datei in der ich die Scrollbars definiert habe:</p>
<pre><code class="language-cpp">IDD_DIALOG_COLORS DIALOG DISCARDABLE  0, 0, 430, 110
[...]
SCROLLBAR       ID_SCROLLBAR_R1, 15, 30, 100, 10
SCROLLBAR       ID_SCROLLBAR_G1, 15, 45, 100, 10
SCROLLBAR       ID_SCROLLBAR_B1, 15, 60, 100, 10
</code></pre>
<p>Und im Hauptprogramm habe ich für diese Dialogbox stehen:</p>
<pre><code class="language-cpp">BOOL CALLBACK ColorsDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
[...]
switch(message)
    {
        case WM_INITDIALOG:
          // Hier stelle ich die Scrollbars ein
          SetScrollRange(GetDlgItem(hWnd,ID_SCROLLBAR_R1)......
          SetScrollPos(GetDlgItem(hWnd,ID_SCROLLBAR_R1), SB_CTL, R1, TRUE);
</code></pre>
<p>Jetzt dachte ich, ich könnte mit</p>
<pre><code class="language-cpp">switch(message)
    {
      case WM_HSCROLL:
          switch(LOWORD(wParam))
            {
               case SB_LINEUP;
               position=position+1;
               break;
               case SB_LINEDOWN;
               position=position-1;
               break;
             }
      }
}
</code></pre>
<p>die Werte auslesen. Aber wie sag ich um welche Scrollbar es sich handelt?<br />
Oder mache ich mir das alles zu kompliziert?</p>
<p>Ich bin über jeden noch so kleinen Tip dankbar!</p>
<p>Vielen Dank!!!!</p>
<p>Gruß<br />
Thorsten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/763149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/763149</guid><dc:creator><![CDATA[Kleiner Gast]]></dc:creator><pubDate>Sat, 09 Apr 2005 18:21:35 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Scrollbars in Dialogfenster auslesen (?) on Sat, 09 Apr 2005 22:52:03 GMT]]></title><description><![CDATA[<p>Im lParam sitzt normalerweise der Handle zur Scrollbar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/763288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/763288</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 09 Apr 2005 22:52:03 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Scrollbars in Dialogfenster auslesen (?) on Sun, 10 Apr 2005 10:32:22 GMT]]></title><description><![CDATA[<p>Danke!</p>
<p>Habe das jetzt so gelöst:</p>
<pre><code class="language-cpp">if ( GetDlgCtrlID((HWND) lParam) == ID_SCROLLBAR_R1)   r1=HIWORD(wParam);
if ( GetDlgCtrlID((HWND) lParam) == ID_SCROLLBAR_G1)   g1=HIWORD(wParam);
if ( GetDlgCtrlID((HWND) lParam) == ID_SCROLLBAR_B1)   b1=HIWORD(wParam);
</code></pre>
<p>Geht bestimmt auch anders, aber so funktioniert es zumindest.</p>
<p>Gruß<br />
Thorsten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/763410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/763410</guid><dc:creator><![CDATA[Kleiner Gast]]></dc:creator><pubDate>Sun, 10 Apr 2005 10:32:22 GMT</pubDate></item></channel></rss>