WEB开发网
开发学院手机开发Symbian 开发 基于控件的传统symbian OS架构之调试小结 阅读

基于控件的传统symbian OS架构之调试小结

 2010-05-31 20:07:00 来源:WEB开发网   
核心提示:iLabel->SetUnderlining(ETrue);iToDoLabel=new(ELeave) CEikLabel;iToDoLabel->SetContainerWindowL(*this);iToDoLabel->SetTextL(_L("iToDoLabel"));

iLabel->SetUnderlining(ETrue);

iToDoLabel=new(ELeave) CEikLabel;

iToDoLabel->SetContainerWindowL(*this);

iToDoLabel->SetTextL(_L("iToDoLabel"));

// Set the windows size

SetRect(aRect);

// Activate the window, which makes it ready to be drawn

ActivateL();

}

void CHelloWorldBasicAppView2::ConstructL(const TRect& aRect,CHelloWorldBasicAppView* iAppView)

{

// Create a window for this application view

CreateWindowL();//复合控件创建窗口

iLabel2=new(ELeave) CEikLabel;

iLabel2->SetContainerWindowL(*iAppView);//将不拥有窗口的控件和窗口关联

iLabel2->SetTextL(_L("iLabel2"));

iLabel2->SetUnderlining(ETrue);

iToDoLabel2=new(ELeave) CEikLabel;

iToDoLabel2->SetContainerWindowL(*iAppView);

iToDoLabel2->SetTextL(_L("iToDoLabel2"));

// Set the windows size

SetRect(aRect);

// Activate the window, which makes it ready to be drawn

ActivateL();

}

通过对照发现,两个构造函数中都创建了窗口,并进行了激活。注意就是它们的窗口范围都是整个屏幕。

现在的问题是:如何轮换显示两个窗口呢?

可以通过方法:iAppView->MakeVisible( EFalse );或iAppView->MakeVisible( ETrue );来实现窗口的是否显示,来在一个屏幕上切换显示两个范围都是占满个屏幕的窗口。

即看UI的构造函数:

void CHelloWorldBasicAppUi::ConstructL()

{

BaseConstructL();

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

iAppView->MakeVisible( EFalse );//暂时不显示容器iAppView

iAppView2 = CHelloWorldBasicAppView2::NewL(ClientRect());

}

三、在一个屏幕上同时显示两个窗口

在设定窗口的范围上,iAppView占屏幕的上半部分,而iAppView2占屏幕的下半部分。其他的和上面一样,当然也就不需要MakeVisible()这个方法了,呵呵。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:基于 控件 传统

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