次の方法で共有


D1194: 未処理 DC をフラッシュする

GetDC/ReleaseDC ペアの間で Flush または EndDraw を呼び出すのは無効です。

 

考えられる原因

GDI 相互運用レンダーターゲットを使用している間、アプリケーションは IGdiInteropRenderTarget::GetDC または IGdiInteropRenderTarget::ReleaseDC を使用してターゲットの DC の所有権を制御できます。 ただし、アプリケーションが DC を制御している間は、ID2D1RenderTarget::Flush または ID2D1RenderTarget::EndDraw を呼び出しても無効です。 Flush と EndDraw により、ターゲット リソースでレンダリングが発生する可能性があり、Direct2D はアプリケーションと同時にリソースの変更を試みるべきではありません。

可能な修正方法

このメッセージに対処するには、アプリケーションが ID2D1RenderTarget::Flush または ID2D1RenderTarget::EndDraw を呼び出さないことを確認します。IGdiInteropRenderTarget の DC の所有権を持っています。 可能であれば、DIRECT2D レンダリング動作と GDI 動作を分離して DC 所有権の区別を明確にするようにアプリケーションを整理します。