Symbian 对话框用法
2010-03-05 06:11:00 来源:WEB开发网// It's calculable from LAF
base_line_delta = 21;
};
tooltip = qtn_multipage_hint_text_edwin;
},
};
}
对话框类的实现
对话框类的实现分为四个大步:
1. 重写继承自CAknDialog的类,或直接使用CAknDialog
2. 如果对话框控件需要用来自外部数据初始化,需要重写PressLayoutDynInitL()
3. 如果类是继承自CAknDialog,一般需要实现一个RunDlgLD()方法,方法中实例化一个对话框
,并使用相应对话框资源运行它
4. 如果需要保存控件的数据,需要重新OkToExitL()方法,该方法中保存数据,并判断是否退
下面是默认工程中About对话框的实现,可以理解上面文字的含义。
CAknMessageQueryDialog* dlg = new (ELeave) CAknMessageQueryDialog();//创建一个对话框
dlg->PrepareLC(R_ABOUT_QUERY_DIALOG); //预备对话框,用R_ABOUT_QUERY_DIALOG 来构造
HBufC* title = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TITLE);//读出资源数据
dlg->QueryHeading()->SetTextL(*title); //把文字写入顶部
CleanupStack::PopAndDestroy();
//title 由于R_ABOUT_DIALOG_TITLE资源的写入用AllocReadResourceLC
//Lc 结尾的函数不用显式的Del ,如果是L结尾的话 就要 调用 Delete(title)
HBufC* msg = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TEXT);
dlg->SetMessageTextL(*msg);//写入内容
CleanupStack::PopAndDestroy(); //msg
dlg->RunLD();//运行对话框
类定义的头文件示例如下:
Class CMyDialog::public CAknDialog
{
public:
// the static RunDlgLD launch function
static TInt RunDlgLD(TInt aResouceId);
private: // From CAknDialog
// base constructor - CAknDialog::CAknDialog() is used
// Destructor
~CMyDialog()
// the control initializer function
void PreLayoutDynInitL();
// the function that collects final control values as well as // checking
更多精彩
赞助商链接