<?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[CEdit: Problem mit dem Scrollbar]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab ein Problem mit einem mehrzeiligen CEdit mit vertikalem Scrollbar in einer dialogbasierten Anwendung. Die Nachrichen ON_VSCROLL und ON_HSCROLL habe ich abgefangen und alles funktioniert perfekt. Das Problem ist, das keine Nachricht kommt, wenn man den Scrollbutton zieht, erst nach dem loslassen. Das ist für meine Anwendung aber zu spät, denn die Ausgaben werden beim scrollen grafisch unbrauchbar. Ich habe WM_CTLCOLOR überschrieben und dem CEdit nen Bitmap-Hintergrund und TRANSPARENTEN-Text verpasst. Der Text beginnt dann einfach zu &quot;schmieren&quot; während man den Button zieht. Ich muss also auch ein Ereignis bekommen können während der Benutzer den Button zieht, damit ich das saubere Zeichnen selbst übernehmen kann. Wenn ich die Pfeile oben/unten klicke kommt das Ereignis sofort, nur eben beim ziehen nicht...</p>
<p>Die API kennt dafür ja ne Reihe Nachrichten der Serie SB_THUMB..., diese scheinen in der MFC aber nicht reflektiert zu sein, der KA kennt sie jedefalls nicht. Was kann ich also tun, wer weis Rat?</p>
<p>Schonmal Dank für eure Hilfe...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/51895/cedit-problem-mit-dem-scrollbar</link><generator>RSS for Node</generator><lastBuildDate>Sun, 31 May 2026 18:01:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/51895.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Oct 2003 17:52:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CEdit: Problem mit dem Scrollbar on Tue, 14 Oct 2003 17:52:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab ein Problem mit einem mehrzeiligen CEdit mit vertikalem Scrollbar in einer dialogbasierten Anwendung. Die Nachrichen ON_VSCROLL und ON_HSCROLL habe ich abgefangen und alles funktioniert perfekt. Das Problem ist, das keine Nachricht kommt, wenn man den Scrollbutton zieht, erst nach dem loslassen. Das ist für meine Anwendung aber zu spät, denn die Ausgaben werden beim scrollen grafisch unbrauchbar. Ich habe WM_CTLCOLOR überschrieben und dem CEdit nen Bitmap-Hintergrund und TRANSPARENTEN-Text verpasst. Der Text beginnt dann einfach zu &quot;schmieren&quot; während man den Button zieht. Ich muss also auch ein Ereignis bekommen können während der Benutzer den Button zieht, damit ich das saubere Zeichnen selbst übernehmen kann. Wenn ich die Pfeile oben/unten klicke kommt das Ereignis sofort, nur eben beim ziehen nicht...</p>
<p>Die API kennt dafür ja ne Reihe Nachrichten der Serie SB_THUMB..., diese scheinen in der MFC aber nicht reflektiert zu sein, der KA kennt sie jedefalls nicht. Was kann ich also tun, wer weis Rat?</p>
<p>Schonmal Dank für eure Hilfe...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/372270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/372270</guid><dc:creator><![CDATA[CodeFlatter]]></dc:creator><pubDate>Tue, 14 Oct 2003 17:52:58 GMT</pubDate></item><item><title><![CDATA[Reply to CEdit: Problem mit dem Scrollbar on Wed, 15 Oct 2003 08:35:45 GMT]]></title><description><![CDATA[<p>suchst du so was ??</p>
<pre><code>//h
private:
 LRESULT OnHScroll(WPARAM wParam, LPARAM lParam); 

//cpp
BEGIN_MESSAGE_MAP(CScrollWndD, CFWndD)
  //ON_MESSAGE(WM_VSCROLL, OnVScroll)
  ON_MESSAGE(WM_HSCROLL, OnHScroll)
END_MESSAGE_MAP()

LRESULT CScrollWndD::OnHScroll(WPARAM wParam, LPARAM lParam) 
{
  //TRACE(&quot;CScrollWndD::OnHScroll\n&quot;);
  {
    SCROLLINFO si; si.cbSize=sizeof(SCROLLINFO);
    si.fMask=SIF_ALL; ::GetScrollInfo(m_hWnd, SB_HORZ, &amp;si);
    int nPos=si.nPos; 
    switch (LOWORD(wParam))
    {
      case SB_LINELEFT:
        si.nPos -=1;
        break;

      case SB_LINERIGHT:
        si.nPos +=1;
        break;

      case SB_PAGELEFT:
        si.nPos -=si.nPage;
        break;

      case SB_PAGERIGHT:
        si.nPos +=si.nPage;
        break;

      case SB_THUMBTRACK:
        si.nPos=si.nTrackPos;
        break;
    }
    si.fMask=SIF_POS;
    ::SetScrollInfo(m_hWnd, SB_HORZ, &amp;si, TRUE);
    ::GetScrollInfo(m_hWnd, SB_HORZ, &amp;si);
    //TRACE(&quot;CScrollWndD::OnHScroll oPos:%i nPos:%i\n&quot;, nPos, si.nPos);
    if (si.nPos!=nPos)
    {
       //...
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/372517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/372517</guid><dc:creator><![CDATA[vdittrich_]]></dc:creator><pubDate>Wed, 15 Oct 2003 08:35:45 GMT</pubDate></item><item><title><![CDATA[Reply to CEdit: Problem mit dem Scrollbar on Wed, 15 Oct 2003 18:21:30 GMT]]></title><description><![CDATA[<p>Hallo, hab erstmal Dank für Deine Hilfe.</p>
<p>Dein Code ist Standard-Code für ein CScrollWndD, selbigen (zumindest ähnlich) verwende ich auch immer. Leider wird von einem CEdit ON_HSCROLL oder ON_VSCROLL nur gesendet, wenn der User auf die Pfeile der Scrollbar klickt. Beim Ziehen sollte das gleiche passieren und man könnte WPARAM und LPARAM auswerten...</p>
<p>Aber diese Nachrichten kommen eben nicht im Dialog an wenn ich die Scrollbar ziehe. Ich hab das mit TRACE und auch Breakpoints überprüft. Die Klicks auf die Pfeile, wie gesagt, schon. Ich habe auch mit SPY++ nachgesehen, das Control (bzw. die Klasse CEdit) verarbeitet diese Nachricht selbst und gibt scheinbar nur noch TRUE raus wenn man am Balken zieht. Ich werd wohl am Subclassing nicht vorbeikommen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Naja nix zu machen, nochmals vielen Dank. Bei nem CScrollWndD wär Dein Tipp Gold wert gewesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/373097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/373097</guid><dc:creator><![CDATA[CodeFlatter]]></dc:creator><pubDate>Wed, 15 Oct 2003 18:21:30 GMT</pubDate></item><item><title><![CDATA[Reply to CEdit: Problem mit dem Scrollbar on Wed, 15 Oct 2003 20:11:22 GMT]]></title><description><![CDATA[<p>Dank an alle die sich gedanken gemacht haben!</p>
<p>Nach langen hin und her musste ich feststellen, das CEdit<br />
SB_THUMBPOSITION und SB_THUMBTRACK nicht zum Parent reflektiert... <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="😕"
    /></p>
<p>Ich hab ne Lösung gebastelt in dem ich die Klasse CEdit einfach per<br />
Ableitung erweitert habe. Die daraus entstandene Klasse überlässt CEdit<br />
immernoch das behandeln der SBN_ Nachrichten (wie gehabt) und sendet - falls<br />
SB_THUMBPOSITION und SB_THUMBTRACK behandelt wurden - diese separat zum Parent<br />
des Controls. Somit kann im Parent auf SB_THUMBPOSITION und SB_THUMBTRACK von<br />
einem CEdit eingegangen werden.</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/373189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/373189</guid><dc:creator><![CDATA[CodeFlatter]]></dc:creator><pubDate>Wed, 15 Oct 2003 20:11:22 GMT</pubDate></item></channel></rss>