请教:关于RichEdit制表符的问题。

shen_wei 2011-11-14 05:52:05

图片中左边是Winxp的记事本(Unicode格式),右边是RichEdit控件(Unicode格式)。。。

1.按下tab键会出现不同的字符空格

如果第一行是tab键,八个字符完全正确,

第二行如果有字符在按下TAB键,会根据第一行TAB键的位置来跑到响应的位置!出现字符空格不相等问题!!

第一行是 TAB键是 8个字符。
第二行是 TAB键是 小于8个字符的。
第三行如何输入字符超过上一行TAB键的位置,TAB键有变正常了,8个字符!!这个是什么原因哪??求教求解!!!


2.如何才能实现,VS2005 这样的TAB键效果,不管中英文都是四个字符!!
...全文
174 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shen_wei 2011-11-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jennyvenus 的回复:]
1)tab的宽度是可变的1-n,最长通常是4或者是8,tab的长度等于 tab最长的长度 - ( tab所在的位置 / 英文字符的差值 ) % 8
2)将字符转换成ansi格式,就能计算出tab的实际长度了。

第一个举例 假设tab最长是8,那么当tab处于第13个英文字符位置时,tab的长度就是 8 - 13 % 8 = 3,这个tab占到第16个英文字符处。

第二个举例,在uni……
[/Quote]
那这样。。在unicode下面就没有办法实现了。。固定长度了!

请问VS2005 是怎么做的哪?固定的就是4个字符。。这个是什么编码形式的。。。

XP记事本,不管是ANSI或者Unicode都是一样的TAB这个没有区别。。怎么回事?
用户 昵称 2011-11-14
  • 打赏
  • 举报
回复
1)tab的宽度是可变的1-n,最长通常是4或者是8,tab的长度等于 tab最长的长度 - ( tab所在的位置 / 英文字符的差值 ) % 8
2)将字符转换成ansi格式,就能计算出tab的实际长度了。

第一个举例 假设tab最长是8,那么当tab处于第13个英文字符位置时,tab的长度就是 8 - 13 % 8 = 3,这个tab占到第16个英文字符处。

第二个举例,在unicode下,将unicode字符串转成ansi字符串,就能计算tab占多少宽度,那么对齐就是问题1所述了。
alpha.5 2011-11-14
  • 打赏
  • 举报
回复
tab 四个字符或者8个 是可以调整的..
这个与编码什么的木有关系的
xhb296 2011-11-14
  • 打赏
  • 举报
回复
TAB键就是空多少个空格的问题吧
它应该算是一个标尺,就是按一个tab后,光标将出现在下一个mod(8)+1的位置上。
即即使你前面有2个或者3个字符,你按一下tab的话,那个光标仍是会出现在第9个字符的位置上,和你前面有几个字符是无关的。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧