Сначала вам нужно изменить свойства окна:
SetWindowLongPtr(hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW);
if (new_pos_size)
{
// if you want new position (pos_x, pos_y) and size (width, height)
UINT flags = SWP_FRAMECHANGED | SWP_SHOWWINDOW;
SetWindowPos(hWnd, HWND_NOTOPMOST, pos_x, pos_y, width, height, flags);
}
else
{
UINT flags = SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED | SWP_SHOWWINDOW;
SetWindowPos(hWnd, 0, 0, 0, 0, 0, flags);
}
Затем вы должны освободить все ресурсы, созданные в пуле по умолчанию - D3DPOOL_DEFAULT
(лучше использовать D3DPOOL_MANAGED
, если это возможно).Если вы этого не сделаете, IDirect3DDevice9::Reset
потерпит неудачу.
Затем вы можете перезагрузить устройство и, при необходимости, воссоздать любые ресурсы.Убедитесь, что вы правильно настроили D3DPRESENT_PARAMETERS
для IDirect3DDevice9::Reset
.