我正在使用ID2D1HwndRenderTarget
渲染文本。
当UI窗口大小发生变化时,我想防止呈现文本的拉伸-因此在我直接执行渲染命令之前,它不会改变。
在Direct2D documentation上描述了行为:
如果EndDraw提供了缓冲区,则此位图将拉伸以覆盖 呈现它的表面:窗口的整个客户区域
我知道ID2D1HwndRenderTarget::Resize方法,但是我不想立即更新大小,只是稍后根据程序需要使用它。
如何忽略Windows事件以防止这种视觉拉伸?
答案 0 :(得分:0)
您已经忽略了尺寸更改消息,这就是为什么在呈现时表面尺寸与客户区域尺寸不匹配的原因。您可以在执行EndDraw()之前通过根据“客户区域/当前目标大小”因子设置目标分辨率来尝试抵消这种影响。我不知道这是否有帮助,或者对当前目标矩形外部的未覆盖窗口区域会发生什么。