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

 TSS000178
开发伙伴平台: 60系列开发平台 1.0/2.0
设备, 软件版本:
大类: Symbian C++
子类: 普通
说明:
详细描述
我想向用户提供一个输入框,用户可以输入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+"这样的字符——通过使用"*"或
"#"键,我们可以监控用户的按键输入来避免用户输入这些字符。
还可以显示一个警告框提示用户的非法输入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值