【发布时间】:2010-12-15 17:33:38
【问题描述】:
我正在尝试创建一个全屏简约文本编辑器(简约我的意思是只有一个闪烁的插入符号、黑色背景、通过箭头控制键盘来移动文本、退格删除等,仅此而已)。我创建了一个 RenderWindow,我有一个用于文本的全局字符串缓冲区,我正在使用 String2D 类在屏幕上将其可视化(我正在使用 VC2010 和 SFML .NET 包在 C# 中开发它)。
我所做的基本上是捕捉击键,检查它们是否来自字母、数字或任何其他对书写有用的书面符号,并从使用 RenderWindow 的绘图在屏幕上永久可视化的字符串缓冲区中添加或减去它们。
现在的问题是,如何实现由箭头控制的正确插入符号移动。如果有人想使用向下/向上/向左/向右箭头在整个文本屏幕上移动。对于一行文本中的左/右移动很容易,可以实现一个计数器来知道我应该在哪个字符之后渲染插入符号。尽管如此,最终我将不得不在屏幕结束的地方换行,然后是什么,如果有人想向下或向上排列,我如何正确“发现”在哪里呈现插入符号,以及如何知道它在字符串中的哪个位置,因为有人之后可以添加或删除部分文本。或者也许我的方法完全错误?请指教。
【问题讨论】:
标签: .net text editor fullscreen sfml