全屏是指Status Pane和Control Pane都隐藏,Main Pane占据整个屏幕。这里提供一种简单的方法。
- 修改AppView类的ConstructL()为:
void CTetrisAppView::ConstructL(const TRect& aRect)
{
CreateWindowL();
SetRect(aRect);
// 获取status Pane和Tool Bar的指针
MEikAppUiFactory* f = CEikonEnv::Static()->AppUiFactory();
iStatusPane = f->StatusPane();
iToolBar = f->ToolBar();
// Activate the window, which makes it ready to be drawn
ActivateL();
}
2. 在AppView类添加Command()函数,代码如下:
void CTetrisAppView::Command(TInt aCommand)
{
if( aCommand == ECommand1 )
{
iFullScreen ^= 1;
if( iFullScreen )
{
if( iToolBar )
{
iToolBar->SetCommandL( 0, ECommand1, _L("Exit\nfullscreen") );
iToolBar->MakeVisible( EFalse );
}
if( iStatusPane )
{
iStatusPane->MakeVisible( EFalse );
}
SetExtentToWholeScreen();
}
else
{
if( iToolBar )
{
iToolBar->SetCommandL( 0, ECommand1, _L("Fullscreen") );
iToolBar->MakeVisible( ETrue );
iToolBar->DrawNow();
}
if( iStatusPane )
{
iStatusPane->MakeVisible( ETrue );
}
TRect rect = CEikonEnv::Static()->EikAppUi()->ClientRect();
SetPosition( rect.iTl );
TSize size = rect.Size();
SetSize( size );
}
}
}