Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22200
  • 博文数量: 28
  • 博客积分: 670
  • 博客等级: 上士
  • 技术积分: 285
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-09 11:27
文章分类

全部博文(28)

文章存档

2011年(28)

我的朋友
最近访客

分类: 嵌入式

2011-01-29 12:34:38

有几种不同的方式可以设置全屏程序

1、覆盖system panes
这个方法主要用在传统的view架构中,当view不是全屏时,可以通过调用CCoeControl::SetExtentToWholeScreen()方法来获取全屏。不过应该在MyView::ConstructL中调用ActivateL()之前调用。如下:

Code:
void CHelloWorldPlusAppView::ConstructL(const TRect& aRect)
    {
    // Create a window for this application view
    CreateWindowL();
    // Set the window size
    SetRect(aRect);
    // This view is a full-screen view.
    SetExtentToWholeScreen();
    // Activate the window, which makes it ready to be drawn
    ActivateL();
}
当应用程序为skinned时是不推荐使用这个函数的(从Series60 2nd Edition向后,查看配置)。不管怎么说,全屏程序也不需要这个设置,因此这个应该不是问题:)

2、隐藏
status pane可通过在AppUi中设置进行隐藏:

Code:
#include  
#include 
StatusPane()->MakeVisible(EFalse); 
Softkeys可以通过在AppUi进行如下设置来隐藏:
Cba()->MakeVisible(EFalse); 
这将启动空softkeys,而确省的softkeys将不起任何作用。为了响应选项菜单和后退键,我们应该自己处理这些按键事件。可以通过处理HandleKeyEventL()方法来解决:

Code:
TKeyResponse  CHelloWorldPlusAppUi::HandleKeyEventL(
    const TKeyEvent& aKeyEvent,TEventCode aType)
{
    // Left or right softkey pressed
if (aType==EEventKeyDown && (aKeyEvent.iScanCode == EStdKeyDevice0 || 
aKeyEvent.iScanCode == EStdKeyDevice1))    
{
    Cba()->MakeVisible(ETrue);
}else  
{
    Cba()->MakeVisible(EFalse);   
}
}        
return EKeyWasNotConsumed;

这样处理后,你将能看到全屏的程序

3、修改View创建时的大小
void CHelloWorldBasicAppUi::ConstructL()
    {
    // Initialise app UI with standard value.
    BaseConstructL();

    // Create view object
//    iAppView = CHelloWorldBasicAppView::NewL( ClientRect() );
    iAppView = CHelloWorldBasicAppView::NewL( ApplicationRect() );

    }
使用ApplicationRect()而不是ClientRect()。程序中SetRect()也可以改变大小

4、这里再提供一种方法
iContainer = CYourContainer::NewL(AppUi()->ApplicationRect(), *this);
这样你的控件将被全屏绘制:)

但以上这些都不没有标签的效果,具体的有待解决

阅读(176) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~