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