×
Namespaces

Variants
Actions

在触摸屏手机上处理缩放功能

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

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

CS001147


  • 开发伙伴平台:

S60 5th Edition


  • 详细描述

S60第五版支持触摸事件。所有的AVKON UI控件都可以处理触摸UI事件。你不需要自己做什么。如果你要完成自己的CCoeControl控件,就要注意完成它的缩放功能。如果不处理缩放功能,那么S60平台就可能无法接收触摸事件,或者受到不正确的触摸事件,因为无法知道触摸事件的正确位置。


MMP文件

需要下列链接库

LIBRARY cone.lib


处理资源文件

自定义的从CCoeControl派生的类必须要相应UI布局的变化

void CMyControl::HandleResourceChange(TInt aType)
{
// Call base class implementation
CCoeControl::HandleResourceChange(aType);
if ( aType==KEikDynamicLayoutVariantSwitch )
{
// Setting new rect for this control
TRect rect;
AknLayoutUtils::LayoutMetricsRect(
AknLayoutUtils::EMainPane,rect);
// SetRect() causes calling components SizeChanged()
SetRect(rect);
}
}

在你的CAknAppUi类中处理缩放功能

void CMyAppUi::HandleResourceChangeL(TInt aType)
{
// Call base class implementation
CAknAppUi::HandleResourceChangeL( aType );
if ( aType == KEikDynamicLayoutVariantSwitch )
{
// Do the re-layout of the components
// TODO: do some layout impl here if needed
}
 
// NOTE: Must not call this if the components are on the control stack
// iMyView->HandleResourceChangeL( aType );
 
// NOTE: If CMyControl is in control stack is
// CMyControl::HandleResourceChange() called automatically
}


增加控件到control stack

如果是control stack中的控件,那么它将接收到按键事件和资源变化的事件。在传统Symbian C++程序中,CMyAppUi从CAknAppUi派

生的。

void CMyAppUi::ConstructL ( )
{
// Initialise app UI with standard value.
BaseConstructL (EAknEnableSkin | EAknTouchCompatible);
 
// Create view
iAppView = CMobilePaintAppView::NewL (ClientRect ( ) );
 
// --> Add view into control stack
AddToStackL( iAppView );
}

当从CMyAppUi中使用view视图切换时,则该控件需要在激活时加载到控件栈

void CMyView::DoActivateL(const TVwsViewId& aPrevViewId,
TUid aCustomMessageId, const TDesC8& aCustomMessage)
{
if (!iContainer)
{
iContainer = CMyControl::NewL(ClientRect());
 
// --> Add view into control stack
AppUi()->AddToStackL (*this, iContainer);
}
}
This page was last modified on 15 December 2011, at 09:20.
43 page views in the last 30 days.
×