mirror of
https://github.com/azure-rtos/guix.git
synced 2025-01-28 07:03:11 +08:00
62 lines
1.9 KiB
C++
62 lines
1.9 KiB
C++
|
|
#ifndef SCROLL_HELPER_INCLUDED
|
|
#define SCROLL_HELPER_INCLUDED
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
class CScrollHelper
|
|
{
|
|
public:
|
|
CScrollHelper();
|
|
~CScrollHelper();
|
|
|
|
// Attach/detach a CWnd or CDialog.
|
|
void AttachWnd(CWnd* pWnd);
|
|
void DetachWnd();
|
|
|
|
// Set/get the virtual display size. When the dialog or window
|
|
// size is smaller than the display size, then that is when
|
|
// scrollbars will appear. Set either the display width or display
|
|
// height to zero if you don't want to enable the scrollbar in the
|
|
// corresponding direction.
|
|
void SetDisplaySize(int displayWidth, int displayHeight);
|
|
const CSize& GetDisplaySize() const;
|
|
|
|
// Get current scroll position. This is needed if you are scrolling
|
|
// a custom CWnd which implements its own drawing in OnPaint().
|
|
const CSize& GetScrollPos() const;
|
|
|
|
// Get current page size. Useful for debugging purposes.
|
|
const CSize& GetPageSize() const;
|
|
|
|
void SetScrollPos(int bar, int newpos, BOOL redraw = TRUE);
|
|
|
|
// Scroll back to top, left, or top-left corner of the window.
|
|
void ScrollToOrigin(bool scrollLeft, bool scrollTop);
|
|
|
|
// Message handling.
|
|
void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
|
void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
|
BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
|
|
void OnSize(UINT nType, int cx, int cy);
|
|
BOOL Scroll(int bar, int delta);
|
|
|
|
private:
|
|
int Get32BitScrollPos(int bar, CScrollBar* pScrollBar);
|
|
void UpdateScrollInfo();
|
|
void UpdateScrollBar(int bar, int windowSize, int displaySize,
|
|
LONG& pageSize, LONG& scrollPos, LONG& deltaPos);
|
|
void GetClientRectSB(CWnd* pWnd, CRect& rect);
|
|
|
|
CWnd* m_attachWnd;
|
|
CSize m_pageSize;
|
|
CSize m_displaySize;
|
|
CSize m_scrollPos;
|
|
};
|
|
|
|
#endif // SCROLL_HELPER_INCLUDED
|
|
|
|
// END
|