×
Namespaces

Variants
Actions

如何构造一个能接收位数字的输入框

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata


详细描述: 我想向用户提供一个输入框,用户可以输入15位数字。我现在使用 CAknTextQueryDialog,因为CAknNumberQueryDialog虽然能接收数字输入,但不能满足我的位数要求。 如果使用CAknTextQueryDialog虽然可以输入足够15位字符,但很难保证用户输入的就是数字。 请问有没有方法提供一个能接收多位数字的输入框? 解决方案 可以通过指定Edwin editor的flags标记来限定用户的输入,输入对话框的资源看起来如下:

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<CEikEdwin*>(ControlOrNull(EMyQuery));
// Set the input mode
control->SetAknEditorInputMode(EAknEditorNumericInputMode);
// Restrict the other input modes
control->SetAknEditorAllowedInputModes(EAknEditorNumericInputMode);
}

上面的示例提供给用户一个可以输入足够位数数字的对话框。 但是它也允许用户输入"*#pw+"这样的字符——通过使用"*"或 "#"键,我们可以监控用户的按键输入来避免用户输入这些字符。 还可以显示一个警告框提示用户的非法输入。

This page was last modified on 8 August 2012, at 05:52.
120 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×