c++ - DrawText C++ 的 D3D9 滚动
问题描述
我正在尝试使用 C++ D3D9 Overlay Hook 将多行文本垂直滚动到特定矩形中的应用程序,但我不知道该怎么做。所以我的问题是,我怎样才能以某种方式限制一个区域来绘制整个文本的一部分呢?(我打算最后创建一个滚动条)
解决方案:
void DrawFrame()
{
RECT rect, scissorRect;
SetRect(&scissorRect, 100, 100, 400, 400);
SetRect(&rect, 100, 100 - y, 400, 1000);
d3ddev->SetScissorRect(&scissorRect);
d3ddev->SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE);
font->DrawTextA(0, "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", -1, &rect, DT_WORDBREAK, 0xFFFFFFFF);
d3ddev->SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE);
}
解决方案
现在是 2019 年,即将是 2020 年,您是否有理由至少不使用 DirectX 11?
无论如何,最简单的实现是跟踪文本(或文本绘制到的矩形)的位置以上下/左右移动它并使用剪刀矩形将文本剪辑为仅在某个地区。
推荐阅读
- azure - 使用 react 和 yeoman office-generator 在 Outlook 插件上实现许可证
- azure - Azure 上流分析的规则引擎
- r - 逻辑回归的有效估计
- javascript - Sheetjs 只读取前 1000 行
- javascript - Angular 6 承诺
- linux - 如何从unix的文本文件中删除“^@”?
- angular - Angular 6:补丁后视图不显示更新
- python - 在 Tensorflow NN 模型中将权重初始化为单位矩阵
- android - android是否支持IGMP url播放视频
- java - 我应该模拟列表以进行流操作吗?