mtk之外挂密码小键盘

在做密码小键盘时,主要是得到串口数据后,如果让它在话机上显示,
经过考虑后,使用直接显示,不通过按键信息,因为如果使用按键消息函数的话,会出现话机和外挂密码小键盘两边都按键时,会死机的问题。
主要的函数是:
xino_keyext_insertchar

其中前一部分是设置输入的一些状态,如果注释掉,下方的输入法框就会存在。都设置false之后,输入法的后选框就会消失。
    IMEinsertChar(wcChar);p 这个是底层的输和法添加字符,用于在界面上显示,之所以使用底层的inserchar 是因为,如果使用上层一些的添加,wgui的添加就要去判断各种状态,如单行,多行等。

     ZiDisplay();这个函数是在界面刷新时使用的。

在这次跟代码主要是在\iwinput\src\iwinputhmi.c
是这个文件中跟的,关于手写输入法,很多也都是在这个文件中。

还一个比较麻烦的处理就是清除键,因为是要清除不同输入框中的数据,我使用了SetKeyHandler,这主要是方便密码小键盘的清除键的注册,如果使用其它方法在底层添加代码就比较麻烦了。
void xino_set_clear_type(int type,U8 mode)
{
    if (type==2)
    {
        SetKeyHandler(multiline_inputbox_delete_all_characters, KEY_CLEAR,KEY_EVENT_UP);
        SetKeyHandler(multiline_inputbox_delete_all_characters, KEY_CLEAR,KEY_EVENT_DOWN);
    }else if(type==1)
    {
        SetKeyHandler(singleline_inputbox_delete_all_characters, KEY_CLEAR,KEY_EVENT_UP);
        SetKeyHandler(singleline_inputbox_delete_all_characters, KEY_CLEAR,KEY_EVENT_DOWN);
    
    }else if (type==3)
    {
        SetKeyHandler(EMS_inputbox_delete_all, KEY_CLEAR,KEY_EVENT_UP);
        SetKeyHandler(EMS_inputbox_delete_all, KEY_CLEAR,KEY_EVENT_DOWN);
    }

    g_input_type = type;
    g_current_input_mode = mode;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值