基于控件的传统symbian OS架构之调试小结
2010-05-31 20:07:00 来源:WEB开发网??????????????????????????????????????????
CCoeControl* CHelloWorldBasicAppView::ComponentControl(TInt aIndex) const
{
switch(aIndex)
{
case 0:
return iLabel;
case 1:
return iToDoLabel;
//多了下面两行
case 2:
return iAppView2;
default:
return NULL;
}
}
????????????????????????????????????
CHelloWorldBasicAppView::~CHelloWorldBasicAppView( )
{
if(iLabel)
{
delete iLabel;
iLabel=NULL;
}
if(iToDoLabel)
{
delete iToDoLabel;
iToDoLabel=NULL;
}
//多了下面几行
if(iAppView2)
{
delete iAppView2;
iAppView2=NULL;
}
}
问题:
1、 draw()方法,不需要做任何改变。我开始想,可能需要加一个iAppView2.DrawNow()之类的代码,启动绘制复合控件iAppView2的代码,实际是多此一举的。系统会自动运行复合控件的draw()等四个方法。
2、复合控件以及复合控件中的两个Label子控件显示的坐标问题,一定记住,它们都是相对于窗口左上角的坐标位置,我曾经将两个子控件的坐标设为相对于它们所属的复合控件了,结果因为超出屏幕范围,没有显示出来。另外屏幕的范围大约在(0,0)--(120,150)之间,如果设置坐标时超出这个范围,就显示不出来了。
当然这只是一些最基本的架构问题,也没有显示一些比较复杂的控件,在这里只是起个熟悉传统程序架构的作用,不正之处,还请各位网友指正。
更多精彩
赞助商链接