PageCounter Object for ScrollViews

Environment: The demo project was created with VC++ 6.0 SP1

When scrolling in a document that consists of quite a lot pages it might
be helpful for the user to get an information which page of the document would be
displayed if he/she >would release to slider of the scrollbar at a certain position.

Microsoft Word has such a feature. It’s a tooltip-like window that displays
the page number that corresponds to the current position of the slider
during scrolling.

I implemented a class named CScrollViewPageCounter that displays such a
page number in a window that looks like a tooltip-window.
If you have a look at the source code you’ll find out that it was quite easy to implement.
The code itself is self-explanatory…

HOW TO USE

To use the ScrollViewPageCounter-Object you have to perform the following
steps:

1. Add the files ScrollViewPageCounter.h and ScrollViewPageCounter.cpp to
your project.

2. Add a new member m_pScrollViewPageCounter to your scroll view class.


CScrollViewPageCounter*
m_pScrollViewPageCounter;

Of course your have to include the corresponding header file here as well:


#include “ScrollViewPageCounter.h”

3. Create the page counter object in CYourScrollView::OnInitialUpdate()


BOOL CYourScrollView::PreCreateWindow(CREATESTRUCT& cs)
{
CScrollView::OnInitialUpdate();

// Instantiate the counter object
m_pScrollViewPageCounter = new CScrollViewPageCounter( this );
}

4. Add a command handler for the message WM_VSCROLL:

 void CYourScrollView::OnVScroll(UINT SBCode, UINT nPos, CScrollBar* pScrollBar)
{
if ( nSBCode == SB_THUMBTRACK )
{
// calculate page number (insert your algorithm here)
UINT uiPageNumber = (UINT) (nPos / 10) + 1;

// display page number
m_pScrollViewPageCounter->DisplayPageNumber( uiPageNumber );
}

// when scrolling is finished we have to hide the page counter
if ( nSBCode == SB_ENDSCROLL )
m_pScrollViewPageCounter->Reset();

CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
}

That’s it.

Now compile and enjoy…

Download demo project – 33 KB

Download source – 3 KB

Date Last Updated: April 16, 1999

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read