dcsimg

PageCounter Object for ScrollViews

WEBINAR:
On-Demand

Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame


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



Comments

  • There are no comments yet. Be the first to comment!

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date