繁体   English   中英

DrawText C++ 的 D3D9 滚动

[英]D3D9 Scrolling for DrawText C++

我正在尝试使用 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?

无论如何,最简单的实现是跟踪文本的 position(或文本绘制到的矩形)以上下/左右移动它,并使用剪刀矩形将文本剪辑为仅在某个地区。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM