<?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[Scrollbars... ich krieg die Motten!]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe mit CreateWindow eine Vertikale Scrollbar erstellt, klappt auch wunderbar! Aber das handling vorne und hinten nicht <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>
<pre><code class="language-cpp">#define STRICT
#include &lt;windows.h&gt;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

const char szAppName[] = &quot;bla&quot;;
HWND bla = NULL;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
   const int   iWindowWidth   =  400;
   const int   iWindowHeight  =  300;

   MSG         msg;
   HWND        hWnd;
   WNDCLASS    wc;

   wc.style          = CS_HREDRAW | CS_VREDRAW;
   wc.lpfnWndProc    = WndProc;
   wc.cbClsExtra     = 0;
   wc.cbWndExtra     = 0;
   wc.hInstance      = hInstance;
   wc.hIcon          = LoadIcon(NULL, IDI_APPLICATION);
   wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
   wc.hbrBackground  = (HBRUSH)GetStockObject(WHITE_BRUSH);
   wc.lpszMenuName   = 0;
   wc.lpszClassName  = szAppName;

   RegisterClass(&amp;wc);
   hWnd = CreateWindow( szAppName,
                        szAppName,
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        iWindowWidth,
                        iWindowHeight,
                        NULL,
                        NULL,
                        hInstance,
                        NULL);

bla = CreateWindow (&quot;scrollbar&quot;, &quot;&quot;, SBS_VERT | WS_CHILD | WS_VISIBLE | BS_FLAT, 10, 10, 17, 100, hWnd, NULL, hInstance, NULL);

   ShowWindow(hWnd, iCmdShow);
   UpdateWindow(hWnd);

   while (GetMessage(&amp;msg, NULL, 0, 0))
   {
      TranslateMessage(&amp;msg);
      DispatchMessage(&amp;msg);
   }

   return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   static const int   iRand         = 20;
   static const int   iZeichenhoehe = 16;
   static RECT  rect;

   switch (message)
   {
   case WM_CREATE:
       {

         SCROLLINFO   siScrollInfo;
         siScrollInfo.cbSize    = sizeof(siScrollInfo);
         siScrollInfo.fMask     = SIF_RANGE | SIF_PAGE;
         siScrollInfo.nMin      = 0;
         siScrollInfo.nMax      = 1200;
         siScrollInfo.nPage     = 64;

         SetScrollInfo(bla, SB_VERT, &amp;siScrollInfo, TRUE);

         siScrollInfo.fMask     = SIF_POS;
         GetScrollInfo(bla, SB_VERT, &amp;siScrollInfo);

         return 0;
      }

   case WM_VSCROLL:
      {
         SCROLLINFO    siScrollInfo;
         int           iPosition;
         siScrollInfo.cbSize   = sizeof(siScrollInfo);
         siScrollInfo.fMask    = SIF_ALL;
         GetScrollInfo(bla, SB_VERT, &amp;siScrollInfo);

         iPosition             = siScrollInfo.nPos;

         switch (LOWORD(wParam))
         {
         case SB_TOP:
            siScrollInfo.nPos    = siScrollInfo.nMin;
            break;

         case SB_BOTTOM:
            siScrollInfo.nPos    = siScrollInfo.nMax;
            break;

         case SB_LINEUP:
            siScrollInfo.nPos   -= 32;
            break;

         case SB_LINEDOWN:
            siScrollInfo.nPos   += 32;
            break;

         case SB_PAGEUP:
            siScrollInfo.nPos   -= siScrollInfo.nPage;
            break;

         case SB_PAGEDOWN:
            siScrollInfo.nPos   += siScrollInfo.nPage;
            break;

         case SB_THUMBTRACK:
            siScrollInfo.nPos    = siScrollInfo.nTrackPos;
            break;

         default:
            return 0;
         }

         siScrollInfo.fMask      = SIF_POS;
         SetScrollInfo(bla, SB_VERT, &amp;siScrollInfo, TRUE);

         return 0;
      }
   case WM_DESTROY:
      {
         PostQuitMessage(0);
         return 0;
      }
   }

   return DefWindowProc(hWnd, message, wParam, lParam);
}
</code></pre>
<p>Egal ob ich nun auf einen der beiden Buttons der scrollbar klicke, es bewegt sich der schieber der scrollbar keinen milimeter <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>Was mach ich falsch=?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/105068/scrollbars-ich-krieg-die-motten</link><generator>RSS for Node</generator><lastBuildDate>Sat, 02 May 2026 06:34:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/105068.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Mar 2005 18:28:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Scrollbars... ich krieg die Motten! on Fri, 25 Mar 2005 18:28:54 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe mit CreateWindow eine Vertikale Scrollbar erstellt, klappt auch wunderbar! Aber das handling vorne und hinten nicht <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>
<pre><code class="language-cpp">#define STRICT
#include &lt;windows.h&gt;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

const char szAppName[] = &quot;bla&quot;;
HWND bla = NULL;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
   const int   iWindowWidth   =  400;
   const int   iWindowHeight  =  300;

   MSG         msg;
   HWND        hWnd;
   WNDCLASS    wc;

   wc.style          = CS_HREDRAW | CS_VREDRAW;
   wc.lpfnWndProc    = WndProc;
   wc.cbClsExtra     = 0;
   wc.cbWndExtra     = 0;
   wc.hInstance      = hInstance;
   wc.hIcon          = LoadIcon(NULL, IDI_APPLICATION);
   wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
   wc.hbrBackground  = (HBRUSH)GetStockObject(WHITE_BRUSH);
   wc.lpszMenuName   = 0;
   wc.lpszClassName  = szAppName;

   RegisterClass(&amp;wc);
   hWnd = CreateWindow( szAppName,
                        szAppName,
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        iWindowWidth,
                        iWindowHeight,
                        NULL,
                        NULL,
                        hInstance,
                        NULL);

bla = CreateWindow (&quot;scrollbar&quot;, &quot;&quot;, SBS_VERT | WS_CHILD | WS_VISIBLE | BS_FLAT, 10, 10, 17, 100, hWnd, NULL, hInstance, NULL);

   ShowWindow(hWnd, iCmdShow);
   UpdateWindow(hWnd);

   while (GetMessage(&amp;msg, NULL, 0, 0))
   {
      TranslateMessage(&amp;msg);
      DispatchMessage(&amp;msg);
   }

   return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   static const int   iRand         = 20;
   static const int   iZeichenhoehe = 16;
   static RECT  rect;

   switch (message)
   {
   case WM_CREATE:
       {

         SCROLLINFO   siScrollInfo;
         siScrollInfo.cbSize    = sizeof(siScrollInfo);
         siScrollInfo.fMask     = SIF_RANGE | SIF_PAGE;
         siScrollInfo.nMin      = 0;
         siScrollInfo.nMax      = 1200;
         siScrollInfo.nPage     = 64;

         SetScrollInfo(bla, SB_VERT, &amp;siScrollInfo, TRUE);

         siScrollInfo.fMask     = SIF_POS;
         GetScrollInfo(bla, SB_VERT, &amp;siScrollInfo);

         return 0;
      }

   case WM_VSCROLL:
      {
         SCROLLINFO    siScrollInfo;
         int           iPosition;
         siScrollInfo.cbSize   = sizeof(siScrollInfo);
         siScrollInfo.fMask    = SIF_ALL;
         GetScrollInfo(bla, SB_VERT, &amp;siScrollInfo);

         iPosition             = siScrollInfo.nPos;

         switch (LOWORD(wParam))
         {
         case SB_TOP:
            siScrollInfo.nPos    = siScrollInfo.nMin;
            break;

         case SB_BOTTOM:
            siScrollInfo.nPos    = siScrollInfo.nMax;
            break;

         case SB_LINEUP:
            siScrollInfo.nPos   -= 32;
            break;

         case SB_LINEDOWN:
            siScrollInfo.nPos   += 32;
            break;

         case SB_PAGEUP:
            siScrollInfo.nPos   -= siScrollInfo.nPage;
            break;

         case SB_PAGEDOWN:
            siScrollInfo.nPos   += siScrollInfo.nPage;
            break;

         case SB_THUMBTRACK:
            siScrollInfo.nPos    = siScrollInfo.nTrackPos;
            break;

         default:
            return 0;
         }

         siScrollInfo.fMask      = SIF_POS;
         SetScrollInfo(bla, SB_VERT, &amp;siScrollInfo, TRUE);

         return 0;
      }
   case WM_DESTROY:
      {
         PostQuitMessage(0);
         return 0;
      }
   }

   return DefWindowProc(hWnd, message, wParam, lParam);
}
</code></pre>
<p>Egal ob ich nun auf einen der beiden Buttons der scrollbar klicke, es bewegt sich der schieber der scrollbar keinen milimeter <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>Was mach ich falsch=?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/752703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/752703</guid><dc:creator><![CDATA[Der Pate Teil IV]]></dc:creator><pubDate>Fri, 25 Mar 2005 18:28:54 GMT</pubDate></item><item><title><![CDATA[Reply to Scrollbars... ich krieg die Motten! on Fri, 25 Mar 2005 19:46:36 GMT]]></title><description><![CDATA[<p>Je nachdem was du machen willst, sind entweder deine SetScrollInfo aufrufe falsch oder das erstellen der Scrollbar. In den SetScollInfo Aufrufen gibst du die Standard-Vertikale-Scollleiste eines Fensters an, aber oben erstellst du sie explizit als eigenes Control.<br />
Also entweder gibst du WS_VSCROLL beim erstellen deines Hauptfensters an, dann hat dieses an der Seite eine Standardscolleiste oder du gibst beim SetScollInfo-Aufruf als ersten Parameter das Handle der Scrollleiste und als zweiten SB_CTL an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/752742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/752742</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Fri, 25 Mar 2005 19:46:36 GMT</pubDate></item><item><title><![CDATA[Reply to Scrollbars... ich krieg die Motten! on Fri, 25 Mar 2005 20:03:27 GMT]]></title><description><![CDATA[<p>Wat? Hab ich doch?</p>
<p>und nein ich nehme kein WM_VSCROLL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/752750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/752750</guid><dc:creator><![CDATA[Der Pate Teil IV]]></dc:creator><pubDate>Fri, 25 Mar 2005 20:03:27 GMT</pubDate></item><item><title><![CDATA[Reply to Scrollbars... ich krieg die Motten! on Fri, 25 Mar 2005 20:06:41 GMT]]></title><description><![CDATA[<p>In WM_CREATE ist bla == NULL !!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/752754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/752754</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Fri, 25 Mar 2005 20:06:41 GMT</pubDate></item><item><title><![CDATA[Reply to Scrollbars... ich krieg die Motten! on Fri, 25 Mar 2005 20:08:59 GMT]]></title><description><![CDATA[<p>WebFritzi schrieb:</p>
<blockquote>
<p>In WM_CREATE ist bla == NULL !!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
</blockquote>
<p>Wenn ichs so mach passiert auch nix <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>
<pre><code class="language-cpp">#define STRICT
#include &lt;windows.h&gt;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

const char szAppName[] = &quot;bla&quot;;
HWND bla = NULL;
HINSTANCE inst;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
   const int   iWindowWidth   =  400;
   const int   iWindowHeight  =  300;
inst = hInstance;
   MSG         msg;
   HWND        hWnd;
   WNDCLASS    wc;

   wc.style          = CS_HREDRAW | CS_VREDRAW;
   wc.lpfnWndProc    = WndProc;
   wc.cbClsExtra     = 0;
   wc.cbWndExtra     = 0;
   wc.hInstance      = hInstance;
   wc.hIcon          = LoadIcon(NULL, IDI_APPLICATION);
   wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
   wc.hbrBackground  = (HBRUSH)GetStockObject(WHITE_BRUSH);
   wc.lpszMenuName   = 0;
   wc.lpszClassName  = szAppName;

   RegisterClass(&amp;wc);
   hWnd = CreateWindow( szAppName,
                        szAppName,
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        iWindowWidth,
                        iWindowHeight,
                        NULL,
                        NULL,
                        hInstance,
                        NULL);

   ShowWindow(hWnd, iCmdShow);
   UpdateWindow(hWnd);

   while (GetMessage(&amp;msg, NULL, 0, 0))
   {
      TranslateMessage(&amp;msg);
      DispatchMessage(&amp;msg);
   }

   return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   static const int   iRand         = 20;
   static const int   iZeichenhoehe = 16;
   static RECT  rect;

   switch (message)
   {
   case WM_CREATE:
       {

bla = CreateWindow (&quot;scrollbar&quot;, &quot;&quot;, SBS_VERT | WS_CHILD | WS_VISIBLE | BS_FLAT, 10, 10, 17, 100, hWnd, NULL, inst, NULL);

         SCROLLINFO   siScrollInfo;
         siScrollInfo.cbSize    = sizeof(siScrollInfo);
         siScrollInfo.fMask     = SIF_RANGE | SIF_PAGE;
         siScrollInfo.nMin      = 0;
         siScrollInfo.nMax      = 1200;
         siScrollInfo.nPage     = 64;

         SetScrollInfo(bla, SB_VERT, &amp;siScrollInfo, TRUE);

         siScrollInfo.fMask     = SIF_POS;
         GetScrollInfo(bla, SB_VERT, &amp;siScrollInfo);

         return 0;
      }

   case WM_VSCROLL:
      {
         SCROLLINFO    siScrollInfo;
         int           iPosition;
         siScrollInfo.cbSize   = sizeof(siScrollInfo);
         siScrollInfo.fMask    = SIF_ALL;
         GetScrollInfo(bla, SB_VERT, &amp;siScrollInfo);

         iPosition             = siScrollInfo.nPos;

         switch (LOWORD(wParam))
         {
         case SB_TOP:
            siScrollInfo.nPos    = siScrollInfo.nMin;
            break;

         case SB_BOTTOM:
            siScrollInfo.nPos    = siScrollInfo.nMax;
            break;

         case SB_LINEUP:
            siScrollInfo.nPos   -= 32;
            break;

         case SB_LINEDOWN:
            siScrollInfo.nPos   += 32;
            break;

         case SB_PAGEUP:
            siScrollInfo.nPos   -= siScrollInfo.nPage;
            break;

         case SB_PAGEDOWN:
            siScrollInfo.nPos   += siScrollInfo.nPage;
            break;

         case SB_THUMBTRACK:
            siScrollInfo.nPos    = siScrollInfo.nTrackPos;
            break;

         default:
            return 0;
         }

         siScrollInfo.fMask      = SIF_POS;
         SetScrollInfo(bla, SB_VERT, &amp;siScrollInfo, TRUE);

         return 0;
      }
   case WM_DESTROY:
      {
         PostQuitMessage(0);
         return 0;
      }
   }

   return DefWindowProc(hWnd, message, wParam, lParam);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/752758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/752758</guid><dc:creator><![CDATA[Der Pate Teil IV]]></dc:creator><pubDate>Fri, 25 Mar 2005 20:08:59 GMT</pubDate></item><item><title><![CDATA[Reply to Scrollbars... ich krieg die Motten! on Sat, 26 Mar 2005 00:04:56 GMT]]></title><description><![CDATA[<p>D@niel $chumann schrieb:</p>
<blockquote>
<p>du gibst beim SetScollInfo-Aufruf als ersten Parameter das Handle der Scrollleiste und als zweiten SB_CTL an.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/752851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/752851</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Sat, 26 Mar 2005 00:04:56 GMT</pubDate></item><item><title><![CDATA[Reply to Scrollbars... ich krieg die Motten! on Sat, 26 Mar 2005 09:23:56 GMT]]></title><description><![CDATA[<p>Ich würd sagen du mußt den Bereich der ScrollBar noch neuzeichnen lassen. Du kannst ja mal ausprobieren, wenn du einige Male den Pfeil nach unten drückst und dann die Größe des Fensters veränderst, dürfte die aktuelle Position angezeigt werden, da du bei WindowStyle HREDRAW und VREDRAW gesetzt hast. Und natürlich den Rat von WebFritzi befolgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/752894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/752894</guid><dc:creator><![CDATA[nob]]></dc:creator><pubDate>Sat, 26 Mar 2005 09:23:56 GMT</pubDate></item><item><title><![CDATA[Reply to Scrollbars... ich krieg die Motten! on Sat, 26 Mar 2005 18:43:38 GMT]]></title><description><![CDATA[<p>Der Pate Teil IV schrieb:</p>
<blockquote>
<p>SB_VERT</p>
</blockquote>
<p>Du meinst wohl SB_CTL!! <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/753319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/753319</guid><dc:creator><![CDATA[Power Off]]></dc:creator><pubDate>Sat, 26 Mar 2005 18:43:38 GMT</pubDate></item></channel></rss>