硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2628|回复: 12
收起左侧

[emWin] 请教下,edit 控件有没有可以获取 光标所在当前的位置函数 ??

[复制链接]

681

主题

3486

回帖

5554

积分

论坛元老

积分
5554
发表于 2018-11-18 16:56:31 | 显示全部楼层 |阅读模式
请教下,edit 控件有没有可以获取 光标所在当前的位置函数 ??
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-11-19 01:41:31 | 显示全部楼层
看看这两个如何:

QQ截图20181119014119.png
回复

使用道具 举报

681

主题

3486

回帖

5554

积分

论坛元老

积分
5554
 楼主| 发表于 2018-11-19 09:22:21 | 显示全部楼层
本帖最后由 hpdell 于 2018-11-19 09:58 编辑
eric2013 发表于 2018-11-19 01:41
看看这两个如何:

请教下,如果我在编辑框里面已经输入了 "td dR 我们的" 这几个字符后,如果我要想在 "我们" 这两个字符中间插入 中文 "他" ,此时使用什么方法可以实现啊 ??
如果在编辑框里面输入字符,任意位置插入字符都是可以的,唯独 插入 中文字符有点纠结 ?

下面是我目前 实现的在 edit 控件里面输入的中文显示
_charHZ 中文输入字符编码
ddd.png
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2018-11-19 10:26:27 | 显示全部楼层
hpdell 发表于 2018-11-19 09:22
请教下,如果我在编辑框里面已经输入了 "td dR 我们的" 这几个字符后,如果我要想在 "我们" 这两个字符中 ...

大佬我想问问你这个EDIT控件如何限制中文最大个数呢?里面有个edit_SetMaxLen,如果是数字和英文都好说,设置10就是10个,但中文是2个字节的,10个的话才显示一半都没有完整。。不知道你咋解决的
回复

使用道具 举报

681

主题

3486

回帖

5554

积分

论坛元老

积分
5554
 楼主| 发表于 2018-11-19 21:47:35 | 显示全部楼层
cz123123 发表于 2018-11-19 10:26
大佬我想问问你这个EDIT控件如何限制中文最大个数呢?里面有个edit_SetMaxLen,如果是数字和英文都好说, ...

我是按照我设置的 edit 的长度与显示字符的宽度为依据计算的,

因为我的 中文字符库有些宽度与英文模式的字符宽度不是倍数关系,所以需要单独的判断一下
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-11-20 02:46:37 | 显示全部楼层
hpdell 发表于 2018-11-19 09:22
请教下,如果我在编辑框里面已经输入了 "td dR 我们的" 这几个字符后,如果我要想在 "我们" 这两个字符中 ...

看下EDTI的API列表里面有没有Insert插入类的函数,我记得MultiEdit里面有的。
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2018-11-20 08:48:46 | 显示全部楼层
获取当前光标所在的位置,建议自己做记录、做移位累加、再根据具体编辑效果设置新坐标点。
回复

使用道具 举报

681

主题

3486

回帖

5554

积分

论坛元老

积分
5554
 楼主| 发表于 2018-11-20 19:27:31 | 显示全部楼层
廷润 发表于 2018-11-20 08:48
获取当前光标所在的位置,建议自己做记录、做移位累加、再根据具体编辑效果设置新坐标点。

在 edit 编辑框里面 进行插入汉字终于搞定了
回复

使用道具 举报

681

主题

3486

回帖

5554

积分

论坛元老

积分
5554
 楼主| 发表于 2018-11-20 20:30:04 | 显示全部楼层
eric2013 发表于 2018-11-20 02:46
看下EDTI的API列表里面有没有Insert插入类的函数,我记得MultiEdit里面有的。

在 edit 编辑框里面 进行插入汉字终于搞定了

新建文本文档 (2).rar (1.31 KB, 下载次数: 15)


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-11-21 01:22:06 | 显示全部楼层
hpdell 发表于 2018-11-20 20:30
在 edit 编辑框里面 进行插入汉字终于搞定了

回复

使用道具 举报

681

主题

3486

回帖

5554

积分

论坛元老

积分
5554
 楼主| 发表于 2018-11-21 08:58:36 | 显示全部楼层
回复

使用道具 举报

12

主题

104

回帖

140

积分

初级会员

积分
140
发表于 2018-11-22 10:11:40 | 显示全部楼层

大哥能说有具体的内容说下你这个回复的意思:我是按照我设置的 edit 的长度与显示字符的宽度为依据计算的,

因为我的 中文字符库有些宽度与英文模式的字符宽度不是倍数关系,所以需要单独的判断一下
回复

使用道具 举报

681

主题

3486

回帖

5554

积分

论坛元老

积分
5554
 楼主| 发表于 2018-11-22 14:40:20 | 显示全部楼层
本帖最后由 hpdell 于 2018-11-22 14:48 编辑
cz123123 发表于 2018-11-22 10:11
大哥能说有具体的内容说下你这个回复的意思:我是按照我设置的 edit 的长度与显示字符的宽度为依据计算的 ...



你好,我的方法在 edit 编辑框里面实现 插入汉字的方法是:

1、我的英文字库 16*24, 字符宽度是 16,高度是 24,对应汉字的24大小,汉字的大小为 24*24

2、我是在插入汉字时,先获取 编辑框里面的字符总字节数,再获取 当前需要插入光标位置,吧当前光标位置之前的数据按照字节数计算出来,然后用 总的 字节数 - 当前光标位置的字节数 = 光标后的字节数

3、吧当前光标位置后面的数据备份

4、在当前光标位置插入汉字编码(我使用的是 gbk,所以一个汉字的字节数是 2)后再吧之前备份的数据拷贝到插入汉字后面

5、最后丢给 edit 显示函数,

6,我这个方法貌似可以任意的编辑框里面随意插入汉字,如果是插入英文字符,则直接输入不用任何的特殊处理

7、如果大侠们有更好的方法,欢迎继续交流或请上传相关的代码进行交流啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-17 14:37 , Processed in 0.472212 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表