If your custom control contains a scrollbar, you need to listen for touch events in the scrollbar.
For custom controls that override CCoeControl::HandleScrollEventL()
,
you should also call the base class implementation of the function.
Figure: Scrollbar
For an implementation example, see below.
void CMyContainerControl::HandleScrollEventL(CEikScrollBar* aScrollBar, TEikScrollEvent aEventType) { if (!aScrollBar) { return; } TInt newPosition = aScrollBar->ThumbPosition(); switch (aEventType) { case EEikScrollUp: // Moving up one step { MoveFocusUpL(); break; } case EEikScrollDown: // Moving down one step { MoveFocusDownL(); break; } case EEikScrollThumbDragVert: // Drag started case EEikScrollThumbReleaseVert: // Drag released { if (newPosition < iFocusedIndex) { MoveFocusUpL(); } else if (newPosition > iFocusedIndex) { MoveFocusDownL(); } break; } case EEikScrollPageUp: { while (newPosition < iFocusedIndex) { MoveFocusUpL(); } break; } case EEikScrollPageDown: { while (newPosition > iFocusedIndex) { MoveFocusDownL(); } break; } default: { break; } } DrawNow(); }