WEB开发网
开发学院手机开发Symbian 开发 Symbian OS S60 对话框编程的一些经验 阅读

Symbian OS S60 对话框编程的一些经验

 2010-04-20 15:48:00 来源:WEB开发网   
核心提示:1.对话框1.1主要步骤:在rss文件中定义RESOURCE DIALOG资源——声明将来拥有该资源的对话框类——实现类的相关成员函数——通过该类对象调用对话框(AppUi或其他地方)1.1.1 Step1:定义对话框资源在rss文件中定义RESOURCE DIALOG r_my_dlg资源,由于在中DIALOG的结构

1.对话框

1.1主要步骤:

在rss文件中定义RESOURCE DIALOG资源——声明将来拥有该资源的对话框类——实现类的相关成员函数——通过该类对象调用对话框(AppUi或其他地方)

1.1.1 Step1:定义对话框资源

在rss文件中定义RESOURCE DIALOG r_my_dlg资源,由于在中DIALOG的结构体包括:

STRUCT DIALOG

{

LONG flags = 0; //对话框属性值

LTEXT title = “”; //标题栏文本

LLINK pages = 0; //页面资源id

LLINK buttons = 0; //按钮资源id

STRUCT items[]; //对话框子控件定义,每个控件时一个DLG_LINE类型资源

LLINK form = 0; //表单资源id

}

items = ……的DLG_LINE定义如下:

STRUCT DLG_LINE

{

WORD type; //子控件类型(如EEikCtLabel、EEikCtEdwin)

LTEXT prompt; //子控件名称

WORD id = 0; //子控件id

LONG itemflags = 0;

STRUCT control; //子控件资源定义(如LABEL、EDWIN)

LTEXT trailer = "";

LTEXT bmpfile = ""; // NEW AVKON bitmap filename

WORD bmpid = 0xffff; // NEW AVKON icon image ID

WORD bmpmask; // NEW AVKON icon mask ID

LTEXT tooltip = ""; // NEW AVKON hint text for form line

}

1.1.2 Step2:继承CAknDialog类的对话框类

到目前为止,看过一些CAknDialog的成员函数如下:

Public:

ConstructL();

ExecuteLD(Tint aResourceId);

PrepareLC(Tint aResourceId);

RunLD();

DynInitMenuPaneL(Tint aResourceId, CEikMenuPane *aMenuPane);

OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType);

ProcessCommandL(Tint aCommandId);

FocusChanged(TDrwNow aDrawNow);

Protected:

OkToExitL(Tint aButtonId);

SizeChanged();

Draw(const TRect &aRect) const;

CreateMenuBarL(Tint aMenuTitleResourceId);

这些函数要有印象,因为常会看到。

1 2  下一页

Tags:Symbian OS 对话框

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