002
07.07.2004, 08:57 Uhr
~Varia
Gast
|
Hm, mein Problem hat sich zwischenzeitlich etwas verändert.
Ich habe rausgefunden, wie ich die Größe meiner Zeichnung eingebe. Allerdings, der Scrollbalken funktioniert nur in Y-Richtung. In X-Richtung wird er zwar angezeigt, reagiert aber nicht, wenn man draufklickt und das obwohl das Bild größer ist als der Ausschnitt.
Der relevante Code ist:
C++: |
void RTStat::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // its horizontal scroll bar int nCurPos = GetScrollPos(SB_HORZ) ; int nPrevPos = nCurPos; // decide what to do for each diffrent scroll event switch(nSBCode) { case SB_LEFT: nCurPos = 0; break; case SB_RIGHT: nCurPos = GetScrollLimit(SB_HORZ)-1; break; case SB_LINELEFT:nCurPos = max(nCurPos - 6, 0); break; case SB_LINERIGHT:nCurPos = min(nCurPos + 6, GetScrollLimit(SB_HORZ)-1); break; case SB_PAGELEFT:nCurPos = max(nCurPos - m_ClientSize.Width(), 0); break; case SB_PAGERIGHT:nCurPos = min(nCurPos + m_ClientSize.Width(), GetScrollLimit(SB_HORZ)-1); break; case SB_THUMBTRACK: case SB_THUMBPOSITION: nCurPos = nPos ; break; }
SetScrollPos(SB_HORZ, nCurPos); ScrollWindow(nPrevPos - nCurPos, 0) ; CWnd::OnHScroll(nSBCode, nPos, pScrollBar); }
void RTStat::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // its horizontal scroll bar int nCurPos = GetScrollPos(SB_VERT) ; int nPrevPos = nCurPos; // decide what to do for each diffrent scroll event switch(nSBCode) { case SB_LEFT: nCurPos = 0; break; case SB_RIGHT: nCurPos = GetScrollLimit(SB_VERT)-1; break; case SB_LINELEFT:nCurPos = max(nCurPos - 6, 0); break; case SB_LINERIGHT:nCurPos = min(nCurPos + 6, GetScrollLimit(SB_VERT)-1); break; case SB_PAGELEFT:nCurPos = max(nCurPos - m_ClientSize.Height(), 0); break; case SB_PAGERIGHT:nCurPos = min(nCurPos + m_ClientSize.Height(), GetScrollLimit(SB_VERT)-1); break; case SB_THUMBTRACK: case SB_THUMBPOSITION: nCurPos = nPos; break; }
SetScrollPos(SB_VERT, nCurPos); ScrollWindow(0, nPrevPos - nCurPos) ; CWnd::OnVScroll(nSBCode, nPos, pScrollBar); }
|
Ich kapier jetzt nicht ganz, warum das in die eine Richtung funktioniert und in die andere nicht. |