class CAknExFormView : public CAknView
这里的CAknExFormView并不见得就是一个Form,这最多说明CAknExFormView是一个继承自CAknView,可以由View Server管理的View(视图),有没有Form要看其中是怎样构造的。这是典型的View结构(也称多视图程序结构),也就是说CAknExFormView只是一个纯粹的子UI(控件和事件等一系列的定义),还需要有一个继承自CCoeControl的容器,为其提供绘屏、响应等UI控制能力,才能通过View Server完成UI的所有功能。
class CSoundView : public CCoeControl, public MCoeControlBrushContext
则是一个传统的Symbian OS程序结构(也称单视图结构),通常只有一个继承自CCoeControl的View(视图),当然这个“View”与View结构中的那个“View”是不同的(这是一个习惯上称谓的问题),传统结构中的View是一个具有完整UI控制能力的单一用户界面。
这里的CAknExFormView并不见得就是一个Form,这最多说明CAknExFormView是一个继承自CAknView,可以由View Server管理的View(视图),有没有Form要看其中是怎样构造的。这是典型的View结构(也称多视图程序结构),也就是说CAknExFormView只是一个纯粹的子UI(控件和事件等一系列的定义),还需要有一个继承自CCoeControl的容器,为其提供绘屏、响应等UI控制能力,才能通过View Server完成UI的所有功能。
class CSoundView : public CCoeControl, public MCoeControlBrushContext
则是一个传统的Symbian OS程序结构(也称单视图结构),通常只有一个继承自CCoeControl的View(视图),当然这个“View”与View结构中的那个“View”是不同的(这是一个习惯上称谓的问题),传统结构中的View是一个具有完整UI控制能力的单一用户界面。
class CSoundView : public CCoeControl, public MCoeControlBrushContext
上面使用的是Symbian OS的传统架构,也就是让AppUi直接拥有它的视图控件,这些视图控件总是从CCoeControl派生的。从CCoeControl派生的视图类一般称为“容器”。
class CAknExFormView : public CAknView
这种情况使用的是使用的S60的Avkon视图切换架构,它引入从CAknView派生的类做为AppUi和容器之间的媒介,并且AppUi类也变成从CAknViewAppUi继承而来的。
上面使用的是Symbian OS的传统架构,也就是让AppUi直接拥有它的视图控件,这些视图控件总是从CCoeControl派生的。从CCoeControl派生的视图类一般称为“容器”。
class CAknExFormView : public CAknView
这种情况使用的是使用的S60的Avkon视图切换架构,它引入从CAknView派生的类做为AppUi和容器之间的媒介,并且AppUi类也变成从CAknViewAppUi继承而来的。
S60 标准列表控件都是通过一个item drawer来进行绘制的,CEikColumnListBox::ItemDrawer()就是返回列表item drawer对象的指针,而CColumnListBoxData就是组织列表显示的数据,列表所显示的icon也是由CColumnListBoxData组织的,所以需要调用CColumnListBoxData::SetIconArray()来设置列表上的icon.