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资源,由于在
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);
这些函数要有印象,因为常会看到。
更多精彩
赞助商链接