常见UI组件 不同的视图通常需要不同的菜单栏,因此当视 图更改时,菜单栏也应该更改。在UIQ中,菜 单栏切换在视图的ViewActivatedL()函数中 进行,使用如下代码: MEikAppUiFactory*factory=iEikonEnv- >AppUiFactory () factory->MenuBar()- >ChangeMenuBarL (0,R NEW MENUBAR, EFalse); CEikMenuBar::ChangeMenuBarL(O的第二个参数 是新视图菜单栏的资源ID。另外两个参数在 班Q中不使用
6 不同的视图通常需要不同的菜单栏,因此当视 图更改时,菜单栏也应该更改。在UIQ中,菜 单栏切换在视图的ViewActivatedL()函数中 进行,使用如下代码: MEikAppUiFactory* factory=iEikonEnv- >AppUiFactory(); factory->MenuBar()- >ChangeMenuBarL(0,R_NEW_MENUBAR, EFalse); CEikMenuBar::ChangeMenuBarL()的第二个参数 是新视图菜单栏的资源ID。另外两个参数在 UIQ中不使用。 常见UI组件
常见UI组件 在Series60中,如果需要动态更改菜单栏, 可以使用如下代码: MEikAppUiFactory*factory=iEikonEnv- >AppUiFactory () factory->MenuBar()- >SetMenuTitleResourceId(R NEW MENUBAR); 与UIQ不同,Series60不实现 CEikMenuBar::ChangeMenuBarL();你必须使 用SetMenu TitleResourceld(
7 在Series 60中,如果需要动态更改菜单栏, 可以使用如下代码: MEikAppUiFactory* factory=iEikonEnv- >AppUiFactory(); factory->MenuBar()- >SetMenuTitleResourceId(R_NEW_MENUBAR); 与UIQ不同,Series 60不实现 CEikMenuBar::ChangeMenuBarL();你必须使 用SetMenu TitleResourceId()。 常见UI组件
常见UI组件 然而,对于在视图特定的菜单栏之间的切换, Series60通常使用不同的方案。Series60 视图由AVKON VIEW资源定义,与视图关联的 菜单栏和软键在资源中定义: STRUCT AVKON VIEW LLINK hotkyes=0; LLINK menubar=0; LLINK cba=0:
8 然而,对于在视图特定的菜单栏之间的切换, Series 60通常使用不同的方案。Series 60 视图由AVKON_VIEW资源定义,与视图关联的 菜单栏和软键在资源中定义: STRUCT AVKON_ VIEW { LLINK hotkyes=0; LLINK menubar=0; LLINK cba=0; } 常见UI组件
常见UI组件 在视图的Cons tructL()中,调用 CAknView::BaseConstructL(O,给它传递AVKON VIEW 资源的D。当视图激活时,自动使用它的菜单栏和软 键。在Series60中,对话框可以定义它们自己的 菜单栏。Series60对话框基类CAknDialog拥有一个 菜单栏,该菜单栏的资源ID在构造对话框时定义。该 对话框使用的软键在DIALOG资源的buttons字段中定 义。当该对话框启动时,它的软键标签改写以前显示 的标签,将它的菜单栏添加到控件栈,以便它在现 有菜单栏之前接收键事件。注意,不需要“选项”菜 单窗格的Series60对话框可以从CeikDialog派生
9 在视图的ConstructL()中,调用 CAknView::BaseConstructL(),给它传递AVKON_VIEW 资源的ID。当视图激活时,自动使用它的菜单栏和软 键。 在Series 60中,对话框可以定义它们自己的 菜单栏。 Series 60对话框基类CAknDialog拥有一个 菜单栏,该菜单栏的资源ID在构造对话框时定义。该 对话框使用的软键在DIALOG资源的buttons字段中定 义。当该对话框启动时,它的软键标签改写以前显示 的标签,将它的菜单栏 添加到控件栈,以便它在现 有菜单栏之前接收键事件。注意,不需要“选项”菜 单窗格的Series 60对话框可以从CeikDialog派生。 常见UI组件
常见UI组件 窗体(CAknForm)是一种派生于CAknDialog的对 话框。窗体提供它们自己的默认菜单栏和菜 单窗格。列表查询对话框 (CAknListQueryDialog)也派生于CAknDialog。 它们由AVKON LIST QUERY资源定义(使用一 个名为softkeys的字段而不是buttons来定义 它的软键)。对话框和窗体我们将在本章后 面介绍
10 窗体(CAknForm)是一种派生于CAknDialog的对 话框。窗体提供它们自己的默认菜单栏和菜 单窗格。列表查询对话框 (CAknListQueryDialog)也派生于CAknDialog。 它们由AVKON_LIST_QUERY资源定义(使用一 个名为softkeys的字段而不是buttons来定义 它的软键)。对话框和窗体我们将在本章后 面介绍。 常见UI组件