在 GetDC/ReleaseDC 对之间调用 Flush 或 EndDraw 是无效的。
可能的原因
使用 GDI 互作的 rendertarget 时,应用程序可以使用 IGdiInteropRenderTarget::GetDC 或 IGdiInteropRenderTarget::ReleaseDC 来控制目标的 DC 的所有权。 但是,当应用程序控制 DC 时,调用 ID2D1RenderTarget::Flush 或 ID2D1RenderTarget::EndDraw 无效。 刷新和 EndDraw 可能会导致呈现在目标资源上,并且 Direct2D 不应尝试与应用程序同时修改资源。
可能的修复方法
若要解决此消息,请确保应用程序没有调用 ID2D1RenderTarget::Flush 或 ID2D1RenderTarget::EndDraw,而应用程序拥有 IGdiInteropRenderTarget 的 DC 的所有权。 如果可能,请组织应用程序将其 Direct2D 呈现行为与其 GDI 行为分开,以使 DC 所有权的区别更加清晰。