在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);

}

 

运行效果:

emWin(ucGui)的Edit控件退格处理方法 worldsing的更多相关文章

  1. emWin(ucGui) Edit控件数值模式 ——符号编辑 worldsing

    emWin(ucGui) Edit控件数值模式出现负数值编辑时,如果键盘按键全可以设置独立的"-","+"键,这样可以正常编辑正数和负数,但是要没有设置这两个键 ...

  2. 一种导致 emwin 中 EDIT 控件不显示的情况

    @2018-12-11 [小记] 设计界面中使用了 EDIT 控件,但在其初始化语句中误使用了 text-color 属性API,导致了控件 EDIT 中的 Text 无法显示,具体如下 hItem ...

  3. C++ 一个程序获取另一个程序Edit控件的内容

    //一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HWND hWnd=::FindWindow(NULL,"zhang001"); if( ...

  4. 增加duilib edit控件的提示功能和多种文字颜色

    转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41786407 duilib的CEditUI控件内部使用了win32的原生 ...

  5. delphi Components[i]清除所有edit控件中的内容

    (* 一般的清空combobox方法 combobox1.clear; ... combobox9.clear; *)   procedure TForm1.Button1Click(Sender: ...

  6. Windows获取其他进程中Edit控件的内容

    最近做的MFC项目中,有个获取其他进程中Edit控件内容的需求,本来以为是个很简单的问题,但是来来回回折腾了不少时间,发博记录一下. 刚开始拿到这个问题,很自然的就想到GetDlgItemText() ...

  7. vc 在edit控件中动态插入数据滚动显示

    内存从网上论坛摘抄整理 思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾 pEdit->LineScroll(pEdit->G ...

  8. 修改Delphi 10.1.2 edit控件在android的复制、剪切和粘贴样式

    Delphi 10.1.2 edit控件在android默认的复制.剪切和粘贴样式太丑,经悟能-DelphiTeacher的提示,用最简单的代码修改后稍有改观. 默认的样式: 修改后的样式: 修改FM ...

  9. WPF:获取DataGrid控件单元格DataGridCell

    转载:http://blog.csdn.net/jhqin/article/details/7645357 /* ------------------------------------------- ...

随机推荐

  1. 引用问题rayshop.common总是提醒重复引用问题

    引用问题rayshop.common总是提醒重复引用问题 解决办法:在插件组里的所有项目引用,使用不能复制属性

  2. HDU 1506 Largest Rectangle in a Histogram

    这个问题姑且也叫做最大子矩阵吧 给一个树状图,求一个最大面积的子矩阵 思路是这样的,对于每个单位矩阵,求出左边连续不比它低的矩阵的下标,放在l数组里 同样,再求出右边连续的不比它低的矩阵的下标 这样, ...

  3. HDU 5273 Dylans loves sequence (逆序对,暴力)

    题意: 给定一个序列,对于q个询问:(L,R)之间有几个逆序对?序列元素个数上限1000,q上限10万.仅1测试例子. 思路: [L,R]的逆序对数量可以这么算,假设L<=K<R,将区间拆 ...

  4. 打印Dom对象的所有属性和方法

    <html> <head> <title>Test</title> <meta http-equiv="Content-Type&quo ...

  5. id to load is required for loading----id被要求加载exception

    表示id主键 没有找到,可能是数据库中的主键设置了not null 而你没有给予主键 还有就是没有传递主键到 数据库中

  6. php 格式化数字 位数不足前面加0补足

    本文引用自 http://www.fengfly.com/plus/view-62827-1.html 补0: <?php $var = sprintf("%03d", 12 ...

  7. Mysql 不同版本 说明

    Mysql 的官网下载地址: http://dev.mysql.com/downloads/ 在这个下载界面会有几个版本的选择. 1. MySQL Community Server 社区版本,免费,但 ...

  8. php查询汉字的拼音首字母的函数

    function getfirst($str, $charset='utf8'){         $dict=array(         'a'=>0xB0C4,         'b'=& ...

  9. Linux基本命令 目录

    Linux基本命令 目录 Linux基本命令(1)管理文件和目录的命令 Linux基本命令(2)有关磁盘控件的命令 Linux基本命令(3)文件备份和压缩的命令 Linux基本命令(4)有关关机和查看 ...

  10. EFSQLserver

    1.增加一条烽据 FLYNEWQKEntities dataContext = new FLYNEWQKEntities(); Log log = new Log(); log.Data1 = &qu ...