C++ Direct2D窗口不对焦时为黑色
我有一个Direct2D窗口,在对焦时画质很好;但是,当焦点移动到另一个窗口(同一个应用程序或其他应用程序)时,整个窗口变黑。我把这个问题归结为使用了C++ Direct2D窗口不对焦时为黑色,c++,windows,focus,hwnd,direct2d,C++,Windows,Focus,Hwnd,Direct2d,我有一个Direct2D窗口,在对焦时画质很好;但是,当焦点移动到另一个窗口(同一个应用程序或其他应用程序)时,整个窗口变黑。我把这个问题归结为使用了ID2D1HwndRenderTarget::Clear。这个功能对我的应用至关重要,因为没有它,绘画就变得相当。。。奇怪 是否有一种方法可以让未聚焦的Direct2D窗口正常绘制(注意:WM_paint像往常一样被调用,就像Clear、BeginPaint等一样,都没有错误) 提前感谢。根据我使用DirectX的经验,如果由于DX丢失了它“绘制”
ID2D1HwndRenderTarget::Clear
。这个功能对我的应用至关重要,因为没有它,绘画就变得相当。。。奇怪
是否有一种方法可以让未聚焦的Direct2D窗口正常绘制(注意:WM_paint
像往常一样被调用,就像Clear
、BeginPaint
等一样,都没有错误)
提前感谢。根据我使用DirectX的经验,如果由于DX丢失了它“绘制”到的设备而导致屏幕反转,那么。例如,在一个全屏DirectX窗口和另一个应用程序之间切换时,这种情况经常发生,反之亦然 因此,您需要做的是重新初始化DX设备,以便它可以恢复绘制操作 这可能会有更多的帮助(不是我的网站,而是谷歌的快速搜索) 来自MSDN
Handling Device Loss
当您的程序运行时
您正在使用的图形设备
可能会变得不可用。例如
如果显示器损坏,设备可能会丢失
分辨率更改,或者如果用户
移除显示适配器。如果
设备丢失,渲染目标也将丢失
与任何
已删除的设备相关资源
与设备关联。Direct2D
通过返回
错误代码D2DERR_从重新创建目标
EndDraw方法。如果你收到
此错误代码,您必须重新创建
渲染目标和所有
依赖于设备的资源
请查看链接以了解更多信息 你没有说你想在这里完成什么。我假设你不想让窗口变黑,但你应该编辑它来说出你想要的。