【发布时间】:2015-03-30 09:45:21
【问题描述】:
我有一个存储各种记录数据的字符串。这些数据应该可以通过控制台访问。控制台当然只有有限的高度。因此,我不需要渲染整个文本,而只需要渲染可见的内容。为此,我有一个变量,用于存储用户向上滚动的文本底部(最近)端的像素数。现在我想我需要一种方法来找出我的文本的哪一部分适合我的控制台,以及如何告诉 DirectWrite 只渲染它。
到目前为止我做了什么:
现在我正在使用CreateTextLayout(...) 和DrawTextLayout(...) 来绘制没有滚动功能的完整文本(现在只是一个小的测试文本)。
CreateTextLayout(...) 已经接受了参数maxWidth 和maxHeight。所以也许这可以解决只渲染适合控制台的问题。
我还使用DWRITE_PARAGRAPH_ALIGNMENT_FAR 来显示最新的文本行。 但是如何添加额外的滚动(最好是额外的像素而不是线条,这样我就可以通过一些时间控制的增量来实现平滑滚动)?
简而言之
-
CreateTextLayout(...)是否为我处理“仅渲染可见部分”? - 如何包含滚动部分?
编辑:更改了标题,因为它没有很好地总结问题。
【问题讨论】:
标签: c++ visual-c++ directwrite