对用资源生成的Form中的控件进行操作的问题。
资源文件如下:
RESOURCE FORM r_aknexform_text_field_form
{
flags = EEikFormEditModeOnly | EEikFormUseDoubleSpacedFormat;
items =
{
DLG_LINE
{
type = EEikCtNumberEditor;
prompt = "Code";
id = 12340;
control = NUMBER_EDITOR
{
min = 0;
max = 99999;
};
},
DLG_LINE
{
type = EEikCtRichTextEditor;
prompt = "Name";
id = 12341;
control = RTXTED
{
flags = EAknEditorNumericInputMode;
avkon_flags = EAknEditorNumericInputMode;
width = qnn_aknexeditor_view_gtexted_width;
height = qnn_aknexeditor_view_gtexted_height;
numlines = qnn_aknexeditor_view_gtexted_numlines;
textlimit= qnn_aknexeditor_view_gtexted_textlimit;
fontcontrolflags = EGulFontControlAll;
fontnameflags = EGulNoSymbolFonts;
};
}
};
}
RESOURCE DIALOG r_demo_singlepage_dialog
{
flags = EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect | EEikDialogFlagCbaButtons | EEikDialogFlagWait;
buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
// buttons = R_AVKON_SOFTKEYS_OPTIONS_BACK;
form = r_aknexform_text_field_form;
}
相关代码如下:
CAknForm* iEditForm = new (ELeave) CAknForm();
CleanupStack::PushL(iEditForm);
iEditForm->ExecuteLD( R_DEMO_SINGLEPAGE_DIALOG );
CEikEdwin* iName = static_cast<CEikEdwin*>(iEditForm->ControlOrNull(ECodeEdit));
// Get country's index.
TBuf<COUNTRY_CODE_LENGTH> iCode;
iName->GetText( iCode );
CEikonEnv::Static()->InfoMsg( iCode );
CleanupStack::Pop();
主要问题:
1. 运行到GetText时崩溃。
次要问题:
1. 本来是个Dialog可是,非要用CAknForm生成才显示正确,如果用CAknDialog生成就显示错误。