当窗口大小改变时,如何防止direct2d“拉伸”视图?

问题描述 投票:1回答:1

我正在用ID2D1HwndRenderTarget渲染文本。

当UI窗口大小发生变化时,我想阻止正在渲染的文本的延伸 - 所以在我直接制作渲染命令之前它将保持不变。

Direct2D documentation上描述了这种行为:

如果EndDraw显示缓冲区,则会拉伸此位图以覆盖显示它的表面:窗口的整个客户区域

我知道ID2D1HwndRenderTarget::Resize方法,但我不想立即更新大小,稍后根据我的程序需要使用它。

如何忽略Windows事件以防止这种视觉延伸?

c++ mfc directx sharpdx direct2d
1个回答
0
投票

您已经忽略了大小更改消息,这就是为什么表面大小与呈现时的客户区大小不匹配的原因。您可以尝试通过在执行EndDraw()之前根据“客户端区域/当前目标大小”因子设置目标分辨率来抵消此效果。我不知道这是否有用,或者当前目标矩形之外的未覆盖窗口区域会发生什么。

© www.soinside.com 2019 - 2024. All rights reserved.