关于Direct2D里文字显示的问题

subme01 2021-03-12 08:28:42
最近在学习Direct2D,在显示文字的时候遇到一个问题,求大牛帮忙看看
想做一个类似聊天窗口的功能,就是一大段文字
static const DWRITE_TRIMMING sc_trimming =
{
DWRITE_TRIMMING_GRANULARITY_CHARACTER,
0,
0
};
m_pTextFormat->SetTrimming(&sc_trimming, NULL);//文字设置去尾截断。
IDWriteTextLayout* pTextLayout = NULL;
pGameApp->m_pdwriteFactory->CreateTextLayout(strText.c_str(), strText.length(), pGameApp->m_pTextFormat.Get(), rect.right - rect.left,rect.bottom - rect.top, &pTextLayout);
创建好Layout之后显示到指定位置
renderTarget->DrawTextLayout(point, pTextLayout, pGameApp->m_pWhiteBrush.Get());

现在的问题是在指定point始终都是从第一个字开始显示的,怎样用滚动条来控制这一大段文字从某一部分起开始显示,就是做到滚动条效果?大牛能不能提供一个方向,先谢谢了
...全文
293 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
subme01 2021-03-13
  • 打赏
  • 举报
回复
另外这个帖子里面的代码我下载不了,大牛你能下载吗?
引用 1 楼 zgl7903 的回复:
https://docs.microsoft.com/zh-cn/archive/msdn-magazine/2013/october/directx-factor-text-formatting-and-scrolling-with-directwrite
subme01 2021-03-13
  • 打赏
  • 举报
回复
这个文档我在提问之前看过,不知道是不是我的理解错误,这个应该是应用于HWND窗口和DWRITE结合的例子,它的滚动是以CLIENT窗口为目标滚动的,当Y坐标为负数时,自然而然的滚到窗口CLIENT之外不显示。 而我的需求是在CLIENT的一个指定矩形区域内滚动,比如100,100,200,200这个区域内滚动,按这个例子的做法,文本就是从100,100滚到100,0,不在100,100,200,200这个区域内了。
zgl7903 2021-03-13
  • 打赏
  • 举报
回复
https://docs.microsoft.com/zh-cn/archive/msdn-magazine/2013/october/directx-factor-text-formatting-and-scrolling-with-directwritehttps://docs.microsoft.com/zh-cn/archive/msdn-magazine/2013/october/directx-factor-text-formatting-and-scrolling-with-directwrite

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧