【问题标题】:D3D9 Scrolling for DrawText C++DrawText C++ 的 D3D9 滚动
【发布时间】:2019-11-17 02:50:23
【问题描述】:

我正在尝试使用 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);
}

【问题讨论】:

  • 欢迎来到 SO!你考虑过附上你的代码吗?
  • @DavidGarcíaBodego,谢谢。在这种情况下,代码无关紧要,它只是一个简单的 DrawText() 到特定矩形,情况是如何只滚动该矩形内的文本。

标签: c++ hook directx-9 vertical-scrolling drawtext


【解决方案1】:

现在是 2019 年,即将是 2020 年,您是否有理由不使用至少 DirectX 11?

无论如何,最简单的实现是跟踪文本(或文本绘制到的矩形)的位置以上下/左右移动它并使用剪刀矩形将文本剪辑为在特定区域内可见。

【讨论】:

  • 是的,我必须为该应用程序制作一个 d3d9 包装器,因为它依赖于它,谢谢您的回复,它解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多