D3DPRESENT_PARAMETERS を通常どおりに調整してみてください。何かのようなもの:
// D3DPRESENT_PARAMETERS is already defined as md3dPP
RECT R ={0, 0, 640, 480}
AdjustwindowRect(&R, WS_OVERLAPPEDWINDOW, false);
md3dPP.BackBufferFormat = D3DFMT_UNKNOWN;
md3dPP.BackBufferWidth = 640;
md3dPP.BackBufferHeight = 480;
md3dPP.Windowed = true;
必要に応じて、次のようにウィンドウ スタイルを変更することもできます。
SetWindowLongPtr(yourWindowHandle, GWL_STYLE, WS_OVERLAPPEDWINDOW)
// must use SetWindowPos for SetWindowLongPtr changes to take effect
SetWindowPos(yourWindowHandle, HWND_TOP, 100, 100, R.right, R.bottom, SWP_NOZORDER | SWP_SHOWWINDOW);
または、フルスクリーンを使用している場合:
md3dPP.BackBufferFormat = D3DFMT_X8R8G8B8;
md3dPP.BackBufferWidth = 640;
md3dPP.BackBufferHeight = 480;
md3dPP.Windowed = true;
SetWindowLongPtr(yourWindowHandle, GWL_STYLE, WS_POPUP)
// must use SetWindowPos for SetWindowLongPtr changes to take effect
SetWindowPos(yourWindowHandle, HWND_TOP, 0, 0, 640, 480, SWP_NOZORDER | SWP_SHOWWINDOW);
いずれにせよ、IDirect3DDevice9::Reset を呼び出して、これをフォローアップします。リセットするときは、必ずリソースを再初期化してください。
したがって、次のように定義した場合: IDirect3DDevice9 *gd3dDevice;
使用する:
gd3dDevice->Reset(&md3dPP);