S60系列应用的全屏处理

S60系列应用的全屏处理的方法一般有两种:
 

 

一.对于传统结构的应用,可以在继承自CAknAppUi的AppUi中通过隐藏按钮区:Cba()->MakeVisible(EFalse)和隐藏状态栏:StatusPane()->MakeVisible(EFalse)来实现。

 

需要指出的是,以上操作最好在加载视图之前进行,例如:

void CxxxAppUi::ConstructL()

BaseConstructL();

Cba()->MakeVisible(EFalse);

StatusPane()->MakeVisible(EFalse);

iAppView = CxxxAppView::NewL( ClientRect() );

 

也就是要先隐藏按钮区和状态栏,让视图控制获得按钮区(controlpane)和状态栏(statuspane)加上主屏幕(mainpane)的区域显示整个视图对象,否则就会出现视图控制区域非全屏的情况。

 

此外,AppUi中还必须定义一个HandleKeyEventL方法处理按键,如下:

TKeyResponse CxxxAppUi::HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)

if (aType==EEventKeyDown && (aKeyEvent.iScanCode == EStdKeyDevice0 || aKeyEvent.iScanCode == EStdKeyDevice1))

Cba()->MakeVisible(ETrue);

else

Cba()->MakeVisible(EFalse);

return EKeyWasNotConsumed;

 

这样可以在按左右功能键时显示按钮区,不用时再隐藏。

 


而多视图结构的应用(AppUi继承自CAknViewAppUi),最简单的方法是在某个视图(view)的容器(container)中:

void CxxxContainer::ConstructL( const TRect& aRect )

...

SetExtentToWholeScreen();

ActivateL();

 

同样的左右功能键按下时可以按钮区,且不用定义HandleKeyEventL。要注意的是:SetExtentToWholeScreen()必须放在ActivateL()前。

 

另外,在多视图结构应用的AppUi中,StatusPane()->MakeVisible(EFalse)也同样有效,只是最好放在SetDefaultViewL()后 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值