×
Namespaces

Variants
Actions

如何检测在触摸界面中的长按动作

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

文章
hoolee 在 03 Nov 2008 创建
最后由 hamishwillee 在 15 Dec 2011 编辑

CS001163


  • 开发伙伴平台:

S60 5th Edition


  • 详细描述

CAknLongTapDetector可以接收自己程序或属下控件的触摸事件,如果发生长按事件那将返回一个位置信息。当触摸持续一个短时间内(缺省为0.15秒)就会在屏幕上显示一个动画,以通知用户当前为长按触摸。如果需要的话程序可以关闭这个动画显示。


下列示例代码可以通过自签名执行。

MMP文件

需要下列链接库和能力

CAPABILITY 	None       
 
LIBRARY avkon.lib

头文件

你的UI控件需要完成MAknLongTapDetectorCallBack接口

#include <aknlongtapdetector.h> 
 
class CImageConverterContainer : public CCoeControl,
public MCoeControlObserver, public MAknLongTapDetectorCallBack
{
...
private: // From MAknLongTapDetectorCallBack
void HandleLongTapEventL( const TPoint& aPenEventLocation,
const TPoint& aPenEventScreenLocation );
 
private:
CAknLongTapDetector* iLongTapDetector;
...
}

源文件

// Create long tap detector
void CImageConverterContainer::ConstructL(const TRect& /*aRect*/)
{
...
iLongTapDetector = CAknLongTapDetector::NewL(this);
...
}
 
// Redirect pointer events to long tap detector
void CImageConverterContainer::HandlePointerEventL(const TPointerEvent&
aPointerEvent)
{
iLongTapDetector->PointerEventL(aPointerEvent);
...
}
 
// This method is called when long tap occurs
void CImageConverterContainer::HandleLongTapEventL( const TPoint&
aPenEventLocation, const TPoint& aPenEventScreenLocation )
{
// TODO: What to do when long tap detected
...
}
This page was last modified on 15 December 2011, at 09:24.
22 page views in the last 30 days.