标题:求助,关于label控件与字符位置
只看楼主
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:352
专家分:1152
注 册:2015-10-2
得分:15 
此问题有难度的。由于可能多行,虽然每行长度固定,但由于单字符和汉字混杂,会造成各行的字符'实占字节数'可能不等。有种方法叫'拆行变单列',可能做到,但比较麻烦。大体是:先将 label 字串内的空格全部用一个不常用的实字符补上(比如:$ )。再:建表,有3个字段:zf c(2),zjs I,hs I.将全部label 字串的字符,一个个放入zf 字段内,单字节字符或双字节都占一行。形成长记录表。从第1行(第1个字符)开始,将每行字符实际占有字节数的累加,放入 zjs 字段。向下走,当字节累加数到达规定长度时,即到达该 label 的第一行尾。将行数数值放入 hs 字段。要判定所在的字符是单或双字节,才能判定该字符是不是一个换行的开始。继续计数。(循环)。如果此表成功完成,由此,从表中就可以看见每个字符所在的行数和相对的位数。可以根据需要取值就是。
   我本人做过:将 edit 内的文章,按照实际行数和每个字的位置,制成对应的方格文(学生作文的方格页面,是成功的)(只作参考吧)。
2018-10-13 21:08
xfqzyh
Rank: 1
等 级:新手上路
帖 子:21
专家分:2
注 册:2013-3-2
得分:0 
回复 31楼 wcx_cc
这办法可行,试试
2018-10-15 10:16
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
得分:0 
用Fontmetric函数试试吧,可能取得你当前字串的大概像素宽度
2018-11-22 14:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490245-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.433336 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved