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

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

 2010-05-31 20:07:00 来源:WEB开发网   
核心提示:private:CEikLabel* iLabel;CEikLabel* iToDoLabel;CHelloWorldBasicAppView2* iAppView2;//多了复合控件iAppView2这个私有成员变量,因为iAppView的容器类多了一个新的子控件,基于控件的传统symbian OS架构之调试小结(7

private:

CEikLabel* iLabel;

CEikLabel* iToDoLabel;

CHelloWorldBasicAppView2* iAppView2;//多了复合控件iAppView2这个私有成员变量。

因为iAppView的容器类多了一个新的子控件,即iAppView2,所以这个类的ConstructL()、SizeChanged()、 CountComponentControls()、ComponentControl()以及析构函数~ChelloWorldBasicAppView都需要修改,如下:

void CHelloWorldBasicAppView::ConstructL(const TRect& aRect)

{

// Create a window for this application view

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

iLabel=new(ELeave) CEikLabel;

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

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

iLabel->SetUnderlining(ETrue);

iToDoLabel=new(ELeave) CEikLabel;

iToDoLabel->SetContainerWindowL(*this);

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

//多了下面两行代码

iAppView2=CHelloWorldBasicAppView2::NewL(TRect(TPo int(0,100),TSize(200,200)));

iAppView2->SetContainerWindowL(*this);

// Set the windows size

SetRect(aRect);

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

ActivateL();

}

????????????????????????????????????

void CHelloWorldBasicAppView::SizeChanged()

{

//设置控件的位置

iLabel->SetExtent( TPoint(10,10), iLabel->MinimumSize() );

iToDoLabel->SetExtent( TPoint(10,30), iToDoLabel->MinimumSize() );

//多了下面一行代码,TPoint(10,60)相对于窗口左上角

iAppView2->SetExtent( TPoint(10,60), iToDoLabel->MinimumSize() );

}

???????????????????????????????????????????

TInt CHelloWorldBasicAppView::CountComponentControls() const

{

return 3;

}

返回是3,不是4(虽然复合控件有两个子控件)。

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

Tags:基于 控件 传统

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