void CSkinHorizontalScrollbar::OnLButtonDown(UINT nFlags, CPoint point) { pList->Invalidate(FALSE); SetCapture(); CRect clientRect; GetClientRect(&clientRect); int nWidth = clientRect.Width()-26; CRect rectLeftArrow(0,0,26,20); CRect rectRightArrow(nWidth,0,nWidth+26,20); CRect rectThumb(nThumbLeft,0,nThumbLeft+26,20); if(rectThumb.PtInRect(point)) { bMouseDown = true; } if(rectRightArrow.PtInRect(point)) { bMouseDownArrowRight = true; SetTimer(2,250,NULL); } if(rectLeftArrow.PtInRect(point)) { bMouseDownArrowLeft = true; SetTimer(2,250,NULL); } CStatic::OnLButtonDown(nFlags, point); }
void CSkinVerticleScrollbar::OnLButtonDown(UINT nFlags, CPoint point) { SetCapture(); CRect clientRect; GetClientRect(&clientRect); int nHeight = clientRect.Height() - 37; CRect rectUpArrow(0,11,20,37); CRect rectDownArrow(0,nHeight,20,nHeight+26); CRect rectThumb(0,nThumbTop,20,nThumbTop+26); if(rectThumb.PtInRect(point)) { bMouseDown = true; } if(rectDownArrow.PtInRect(point)) { bMouseDownArrowDown = true; SetTimer(2,250,NULL); } if(rectUpArrow.PtInRect(point)) { bMouseDownArrowUp = true; SetTimer(2,250,NULL); } CStatic::OnLButtonDown(nFlags, point); }
void CSkinHorizontalScrollbar::OnLButtonUp(UINT nFlags, CPoint point) { UpdateThumbPosition(); KillTimer(1); ReleaseCapture(); bool bInChannel = true; CRect clientRect; GetClientRect(&clientRect); int nWidth = clientRect.Width()-26; CRect rectLeftArrow(0,0,26,20); CRect rectThumb(nThumbLeft,0,nThumbLeft+26,20); if(rectLeftArrow.PtInRect(point)) { ScrollLeft(); bInChannel = false; } CRect rectRightArrow(nWidth,0,nWidth+26,20); if(rectRightArrow.PtInRect(point)) { ScrollRight(); bInChannel = false; } if(rectThumb.PtInRect(point)) { bInChannel = false; } if(bInChannel == true && !bMouseDown) { if(point.x > nThumbLeft) { PageRight(); } else { PageLeft(); } } //reset all variables bMouseDown = false; bDragging = false; bMouseDownArrowLeft = false; bMouseDownArrowRight = false; CStatic::OnLButtonUp(nFlags, point); }
void CSkinVerticleScrollbar::OnLButtonUp(UINT nFlags, CPoint point) { UpdateThumbPosition(); KillTimer(1); ReleaseCapture(); bool bInChannel = true; CRect clientRect; GetClientRect(&clientRect); int nHeight = clientRect.Height() - 37; CRect rectUpArrow(0,11,20,37); CRect rectDownArrow(0,nHeight,20,nHeight+26); CRect rectThumb(0,nThumbTop,20,nThumbTop+26); if(rectUpArrow.PtInRect(point) && bMouseDownArrowUp) { ScrollUp(); bInChannel = false; } if(rectDownArrow.PtInRect(point) && bMouseDownArrowDown) { ScrollDown(); bInChannel = false; } if(rectThumb.PtInRect(point)) { bInChannel = false; } if(bInChannel == true && !bMouseDown) { if(point.y > nThumbTop) { PageDown(); } else { PageUp(); } } bMouseDown = false; bDragging = false; bMouseDownArrowUp = false; bMouseDownArrowDown = false; CStatic::OnLButtonUp(nFlags, point); }
/////////////////////////////////////////////////////////////////////////////// // OnLButtonUp void CXScrollBar::OnLButtonUp(UINT nFlags, CPoint point) { UpdateThumbPosition(); KillTimer(1); ReleaseCapture(); if (m_bHorizontal) { CRect rectLeftArrow(0, 0, m_nBitmapWidth, m_rectClient.Height()); CRect rectRightArrow(m_rectClient.Width() - m_nBitmapWidth, 0, m_rectClient.Width(), m_rectClient.Height()); CRect rectThumb(m_nThumbLeft, 0, m_nThumbLeft + m_nBitmapWidth, m_rectClient.Height()); if (rectLeftArrow.PtInRect(point)) { ScrollLeft(); } else if (rectRightArrow.PtInRect(point)) { ScrollRight(); } else if (rectThumb.PtInRect(point)) { m_bThumbHover = TRUE; Invalidate(); SetTimer(TIMER_MOUSE_OVER_THUMB, 50, NULL); } m_bMouseDownArrowLeft = FALSE; m_bMouseDownArrowRight = FALSE; } else { CRect rectUpArrow(0, 0, m_rectClient.Width(), m_nBitmapHeight); CRect rectDownArrow(0, m_rectClient.Height() - m_nBitmapHeight, m_rectClient.Width(), m_rectClient.Height()); CRect rectThumb(0, m_nThumbTop, m_rectClient.Width(), m_nThumbTop + m_nBitmapHeight); if (rectUpArrow.PtInRect(point)) { ScrollUp(); } else if (rectDownArrow.PtInRect(point)) { ScrollDown(); } else if (rectThumb.PtInRect(point)) { m_bThumbHover = TRUE; Invalidate(); SetTimer(TIMER_MOUSE_OVER_THUMB, 50, NULL); } m_bMouseDownArrowUp = FALSE; m_bMouseDownArrowDown = FALSE; } m_bMouseDown = FALSE; m_bDragging = FALSE; CStatic::OnLButtonUp(nFlags, point); }
/////////////////////////////////////////////////////////////////////////////// // OnLButtonDown void CXScrollBar::OnLButtonDown(UINT nFlags, CPoint point) { SetCapture(); if (m_bHorizontal) { CRect rectLeftArrow(0, 0, m_nBitmapWidth, m_rectClient.Height()); CRect rectRightArrow(m_rectClient.Width() - m_nBitmapWidth, 0, m_rectClient.Width(), m_rectClient.Height()); CRect rectThumb(m_nThumbLeft, 0, m_nThumbLeft + m_nBitmapWidth, m_rectClient.Height()); if (rectThumb.PtInRect(point)) { m_bMouseDown = TRUE; } else if (rectRightArrow.PtInRect(point)) { m_bMouseDownArrowRight = TRUE; SetTimer(TIMER_LBUTTON_PRESSED, 150, NULL); } else if (rectLeftArrow.PtInRect(point)) { m_bMouseDownArrowLeft = TRUE; SetTimer(TIMER_LBUTTON_PRESSED, 150, NULL); } else // button down in channel { m_nThumbLeft = point.x - m_nBitmapWidth / 2; SetPositionFromThumb(); Draw(); if (m_pParent && ::IsWindow(m_pParent->m_hWnd)) { m_pParent->SendMessage(WM_HSCROLL, MAKELONG(SB_THUMBTRACK, m_nPos), (LPARAM)m_hWnd); } } } else { CRect rectUpArrow(0, 0, m_rectClient.Width(), m_nBitmapHeight); CRect rectDownArrow(0, m_rectClient.Height() - m_nBitmapHeight, m_rectClient.Width(), m_rectClient.Height()); CRect rectThumb(0, m_nThumbTop, m_rectClient.Width(), m_nThumbTop + m_nBitmapHeight); if (rectThumb.PtInRect(point)) { m_bMouseDown = TRUE; } else if (rectDownArrow.PtInRect(point)) { m_bMouseDownArrowDown = TRUE; SetTimer(TIMER_LBUTTON_PRESSED, 150, NULL); } else if (rectUpArrow.PtInRect(point)) { m_bMouseDownArrowUp = TRUE; SetTimer(TIMER_LBUTTON_PRESSED, 150, NULL); } else // button down in channel { m_nThumbTop = point.y - m_nBitmapHeight / 2; SetPositionFromThumb(); Draw(); if (m_pParent && ::IsWindow(m_pParent->m_hWnd)) { m_pParent->SendMessage(WM_VSCROLL, MAKELONG(SB_THUMBTRACK, m_nPos), (LPARAM)m_hWnd); } } } CStatic::OnLButtonDown(nFlags, point); }