WEB开发网
开发学院手机开发Symbian 开发 解决 Symbian 开发全屏显示问题 阅读

解决 Symbian 开发全屏显示问题

 2010-02-25 04:37:00 来源:WEB开发网   
核心提示:那么就有如下几种方法:①如果我们知道屏幕尺寸,那么就可以把iAppContainer->ConstructL( );里面的参数改为TRect (0,0,176,208),②上面的程序不具有适配性,因为我们把屏幕的宽度和高度写死了,解决 Symbian 开发全屏显示问题(2),我们来看Symbian给我们提供的一个

那么就有如下几种方法:

①如果我们知道屏幕尺寸,那么就可以把iAppContainer->ConstructL( );里面的参数改为TRect (0,0,176,208)。

②上面的程序不具有适配性,因为我们把屏幕的宽度和高度写死了。

我们来看Symbian给我们提供的一个方法

ApplicationRect()

TRect ApplicationRect() const;

Description

Gets the total area of the screen available to the application. This includes the space that is available for a toolbar, toolband or title band, if the application requires them.

Return value

TRect The total area of the screen available to the application.

Description写的很明显了,我就不翻译了。这个方法可以获得屏幕的整个尺寸,我们把程序可以改为:

iAppContainer->ConstructL( ApplicationRect() );从而实现程序的全屏显示。

③第三中方法是最笨的方法了,那就是不改变UI所传递的"客户矩形区域"的大小,传递的仍然是ClientRect()。但是到了Container后再采用"亡羊补牢"的做法!把status pane、menu bar等隐藏起来。

而且这种方法也容易出错误,下面是一个同行犯的错误,他在Container类里写入下面代码:

void CTestScreenContainer::ConstructL(const TRect& aRect)

{

CreateWindowL();

iLabel = new (ELeave) CEikLabel;

iLabel->SetContainerWindowL( *this );

iLabel->SetTextL( _L("Example View") );

iToDoLabel = new (ELeave) CEikLabel;

iToDoLabel->SetContainerWindowL( *this );

iToDoLabel->SetTextL( _L("Add Your controls here") );

SetRect(aRect);

CEikStatusPane* statusp = iEikonEnv->AppUiFactory()->StatusPane();

if(statusp)

statusp->MakeVisible(EFalse);

iEikonEnv->AppUiFactory()->Cba()->MakeVisible(EFalse);

ActivateL();

}

为了使用CEikStatusPane类要加入头文件#include

为了使用CEikButtonGroupContainer类要加入头文件#include

Tags:解决 Symbian 开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接