解决方案可以通过指定Edwin editor的flags标记来限定用户的输入,输入对话框的资源看起来如下:
Code:
DLG_LINE
{
type=EEikCtEdwin;
id=EMyQuery;
control=EDWIN { maxlength=15; };
}
...
void CTestDlgDialog::PrepareLC(TInt aResourceId)
{
CEikDialog::PrepareLC( aResourceId );
// Dialog base class can be CAknDialog
//CAknDialog::PrepareLC( aResourceId );
// Pick up the Editor control from the dialog
CEikEdwin* control = static_cast(ControlOrNull(EMyQuery));
// Set the input mode
control->SetAknEditorInputMode(EAknEditorNumericInputMode);
// Restrict the other input modes
control->SetAknEditorAllowedInputModes(EAknEditorNumericInputMode);
}
{
type=EEikCtEdwin;
id=EMyQuery;
control=EDWIN { maxlength=15; };
}
...
void CTestDlgDialog::PrepareLC(TInt aResourceId)
{
CEikDialog::PrepareLC( aResourceId );
// Dialog base class can be CAknDialog
//CAknDialog::PrepareLC( aResourceId );
// Pick up the Editor control from the dialog
CEikEdwin* control = static_cast(ControlOrNull(EMyQuery));
// Set the input mode
control->SetAknEditorInputMode(EAknEditorNumericInputMode);
// Restrict the other input modes
control->SetAknEditorAllowedInputModes(EAknEditorNumericInputMode);
}
上面的示例提供给用户一个可以输入足够位数数字的对话框。
但是它也允许用户输入"*#pw+"这样的字符——通过使用"*"或
"#"键,我们可以监控用户的按键输入来避免用户输入这些字符。
还可以显示一个警告框提示用户的非法输入。
但是它也允许用户输入"*#pw+"这样的字符——通过使用"*"或
"#"键,我们可以监控用户的按键输入来避免用户输入这些字符。
还可以显示一个警告框提示用户的非法输入。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126387/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10294527/viewspace-126387/