17.6.3 组件控件
控件可以有0个、一个或多个组件控件。以下是控件用来管理它的组件控件的三个函数,它们从CCoeControl类定义中抽取出来。
如果想要实现容器控件,可以在任何合适的数据结构中存储控件。重写Count ComponentControls(),指明有多少个控件;重写ComponentControl(),返回从0开始的每一索引值对应的控件。
默认情况下,CountComponentControls()返回 0,而 ComponentControl()出现严重错误。这两个函数成对工作,因此务必对它们同时进行一致性的重写。 Index()逐个搜索组件控件,查找其地址与所传递地址匹配的组件控件。如果没有发现,Index()返回KErrNotFound。 CCoeControl基类没有规定组件控件应该如何存储在容器中。
如果容器是固定用途容器,比如连三子应用程序视图,它仅包含棋格和一个其他的控件,那么可以使用指针来寻址每一组件,通过硬性编码,让 CountComponentControls()返回 KNumber OfTiles+1,并让ComponentControl()返回相关的控件。
另一方面,如果控件是通用容器,比如对话框,可能希望实现通用数组来保存组件控件。
【责任编辑:
董书 TEL:(010)68476606】