D1194:刷新未完成 DC

在 GetDC/ReleaseDC 对之间调用 Flush 或 EndDraw 无效。

 

可能的原因

使用 GDI 互操作呈现目标时,应用程序可以使用 IGdiInteropRenderTarget::GetDC 或 IGdiInteropRenderTarget::ReleaseDC 来控制目标的 DC 的所有权。 但是,当应用程序控制 DC 时,调用 ID2D1RenderTarget::Flush 或 ID2D1RenderTarget::EndDraw 无效。 Flush 和 EndDraw 可能会导致在目标资源上进行呈现,并且 Direct2D 不应在应用程序的同时尝试修改资源。

可能的修复方法

若要解决此消息,请确保应用程序在拥有 IGdiInteropRenderTarget DC 的所有权时不调用 ID2D1RenderTarget::Flush 或 ID2D1RenderTarget::EndDraw。 如果可能,组织应用程序以将其 Direct2D 呈现行为与其 GDI 行为分开,以使 DC 所有权的区分更加清晰。