滚动条的监听事件。

http://hi.baidu.com/yaoliang11/blog/item/bc1517ee80ab5207fcfa3cf3.html

 

1.滚动条监控类的头文件:
#include <eiksbobs.h>
#include <e32base.h>
class MCustomScrollBarObserver
{
public:
virtual void ChangeRectsCoordinates(TInt newPosition)=0;
};
class CSbObserver : public CBase, public MEikScrollBarObserver
{
public:
CSbObserver(){};
public:
void HandleScrollEventL(CEikScrollBar* aScrollBar,TEikScrollEvent aEventType);
TInt sbPosition;
TInt GetPosition(){return sbPosition;}
MCustomScrollBarObserver* iScrollBarObserver;
void SetCustomScrollBarObserver(MCustomScrollBarObserver* aObserver){iScrollBarObserver = aObserver;}
};

2.滚动条监控类的实现:
void CSbObserver::HandleScrollEventL(CEikScrollBar* aScrollBar,
TEikScrollEvent aEventType)
{
switch (aEventType)

{
case EEikScrollThumbDragVert:
{
sbPosition = aScrollBar->ThumbPosition();
break;
}
case EEikScrollThumbReleaseVert:
{
sbPosition = aScrollBar->ThumbPosition();
if(iScrollBarObserver)
{
iScrollBarObserver->ChangeRectsCoordinates(sbPosition);
}
break;
}
case EEikScrollPageDown:
{
sbPosition = aScrollBar->ThumbPosition();
break;
}
case EEikScrollPageUp:
{
sbPosition = aScrollBar->ThumbPosition();
break;
}
default:
TInt b = 0;
//            SetActualElement(aScrollBar->ThumbPosition());

break;

}

}

3.使用监控滚动条类:
1) 在使用的类中继承MCustomScrollBarObserver,并实现其纯虚函数;
2) 对需要监控的对象进行注册,比如CEikRichTextEditor类;
iEditor = new (ELeave) CEikRichTextEditor();
iEditor ->SetContainerWindowL(*this);
iEditor ->ConstructL(this, 0, 0, CEikEdwin::EReadOnly
| CEikEdwin::EAvkonDisableCursor | CEikEdwin::ENoCustomDraw,
EGulFontControlAll, EGulNoSymbolFonts);
iEditor ->CreateScrollBarFrameL()->SetScrollBarVisibilityL(
CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOn);
iScrollObserver = new (ELeave) CSbObserver();
iEditor ->ScrollBarFrame()->SetScrollBarFrameObserver( iScrollObserver);
iScrollObserver->SetCustomScrollBarObserver(this);
这样就监视了我们RichText的滚动条了,只要我们拖动之后,就会进入到响应函数,回调在本类的实现的虚函数中。可以自己定义,比如得到滚动条拖动的距离等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值