C++ 如果窗口移出可视矩形,d3d9客户端区域将被擦除

C++ 如果窗口移出可视矩形,d3d9客户端区域将被擦除,c++,winapi,directx,C++,Winapi,Directx,我正在使用DirectX 9制作UI(带窗口)。当我将窗口移出屏幕时(即拖动窗口直到窗口的某个部分不可见,然后再将其拖回),不可见的部分将被擦除。我试着用DirectX 10做同样的事情,效果很好。DirectX 9为什么会出现此问题以及如何解决此问题?Windows就是这样工作的。您应该处理WM_PAINT消息。当您收到该消息时,请重新绘制程序窗口。此外,您应该始终使用较新版本的DirectX,除非您希望以Windows XP为目标。PS:我也不知道为什么只有DX9有这个问题。我已经解决了…由

我正在使用DirectX 9制作UI(带窗口)。当我将窗口移出屏幕时(即拖动窗口直到窗口的某个部分不可见,然后再将其拖回),不可见的部分将被擦除。我试着用DirectX 10做同样的事情,效果很好。DirectX 9为什么会出现此问题以及如何解决此问题?

Windows就是这样工作的。您应该处理
WM_PAINT
消息。当您收到该消息时,请重新绘制程序窗口。此外,您应该始终使用较新版本的DirectX,除非您希望以Windows XP为目标。PS:我也不知道为什么只有DX9有这个问题。我已经解决了…由于WM_ERASEBKGND消息被发送到窗口,部分窗口被擦除了。。。。所以我指定WS_POPUP作为窗口样式,现在它可以完美地工作。当您收到
WM_PAINT
时,是否尝试重新绘制?你知道用“官方”的方式做总是更好的。如果您希望处理
WM_ERASEBKGND
消息,只需
返回true
和Windows会认为你删除了背景(而实际上你没有)。