java用gui如何写退格_emWin(ucGui)的Edit控件退格处理方法 worldsing

在enWin(ucGui)中EDIT控件在数值模式(十进制/十六进制/二进制/浮点数)下编辑是,无法使用BackSpace键进行退格,主要涉及到的函数有:

EDIT_SetBinMode()

EDIT_SetDecMode()

EDIT_SetHexMode()

EDIT_SetFloatMode()

?

将Edit控件一旦使用此类的模式是将无法BackSpace键进行退格删除,解决办法如下,响应Edit控件的按键消息,当收到BackSpace键时强制将光标退到上一个字符,那么就使用到接口函数即:获取当前的字符光标位置和设置指定字符位置光标。

EDIT_GetCursorCharPos()

EDIT_SetCursorAtChar()

?

代码:

/*********************************************************************

* cbEdit 编辑控件回调

*/

static

void

cbEdit(WM_MESSAGE * pMsg) {

????switch (pMsg->MsgId) {

????case

WM_KEY:

????????switch (((WM_KEY_INFO *)(pMsg->Data.p))->Key){

????????case

GUI_KEY_ENTER:

????????????price = EDIT_GetFloatValue(widgetsItemBuf[0]);

????????????WM_SetFocus(widgetsItemBuf[1]);????

????????????return;

????????case

GUI_KEY_BACKSPACE:

????????????if(((WM_KEY_INFO *)(pMsg->Data.p))->PressedCnt == 0)

????????????EDIT_SetCursorAtChar(widgetsItemBuf[0],EDIT_GetCursorCharPos(widgetsItemBuf[0]) - 1);

????????????break;

????????}

????break;

????}

????EDIT_Callback(pMsg);

}

?

运行效果:

94a98c26cc0ad6480f1a2c074a145947.png

原文:http://www.cnblogs.com/worldsing/p/4169939.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值