【发布时间】:2010-12-30 14:26:05
【问题描述】:
我的问题不是基于语言或基于操作系统。我猜每个系统都提供某种 TextOut(text, x, y) 方法。我正在寻找一些指南或文章我应该如何实现输出文本的选择。找不到任何相关信息。
我唯一想到的是这样的:
当用户单击文本画布上的某个点时,我知道该点的坐标。我需要计算它在我的文本缓冲区中的确切位置。因此,我从缓冲区的开头开始遍历,并对每个字符(或文本块)应用样式(如果有的话)。在此之后,我知道在给定样式之后,字母已经给定大小。我将其宽度和高度添加到先前计算的 X、Y 坐标中。这样,我就在遍历缓冲区,直到计算出的位置还没有到达用户点击过的点。在我到达某个偏移范围内的点后,我有了选择的起点。
这是基本思想。我不知道这是否很好,我想知道这是如何真正做到的,例如在 Firefox 中。我知道我可以浏览资源,如果我别无选择,我会这样做。但首先我试图找到一些关于它的文章......
【问题讨论】:
-
确实很有趣。我建议查看开源代码,看看其他人是如何解决这个问题的。
标签: language-agnostic text selection