关于d3d中的窗口化问题
小弟看了一个vb d3d显示.x文件的例子里面有如下代码
D3DWindow.SwapEffect = D3DSWAPEFFECT_FLIP
D3DWindow.Windowed = 1 'using full screen modew
D3DWindow.BackBufferCount = 1
D3DWindow.BackBufferFormat = D3DFMT_R5G6B5
D3DWindow.BackBufferWidth = DispMode.Width
D3DWindow.BackBufferHeight = DispMode.Height
D3DWindow.hDeviceWindow = frmMain.Picture1.hWnd
D3DWindow.EnableAutoDepthStencil = 1
D3DWindow.AutoDepthStencilFormat = D3DFMT_D16
其中D3DWindow.Windowed = 0应该就是窗口化吧?
但是改成0之后,调试发现在
Set D3DDevice = D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, frmMain.hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, D3DWindow)
这句报自动化错误,
求高手知道如何让这个例子窗口化运行
vb 3d d3d 窗口 --------------------编程问答-------------------- 窗口模式不能用FLIP
没有BackBuffer --------------------编程问答--------------------
我改成了D3DSWAPEFFECT_DISCARD
注释掉了BackBuffer,
窗口弹出来之后就卡住了..
高手帮下忙啊, --------------------编程问答-------------------- 我只是在MSDN看过DX的资料而已,完全没用过D3D
我说的是DirectDraw7里面关于全屏和窗口模式的分别,我想和D3D也是一致的 --------------------编程问答--------------------
感谢! --------------------编程问答--------------------
Dim DMode As D3DDISPLAYMODE
D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, DMode '取得当前DISPLAYMODE
D3DWindow.Windowed = 1
D3DWindow.SwapEffect = D3DSWAPEFFECT_DISCARD
D3DWindow.BackBufferFormat = DMode.Format
D3DWindow.hDeviceWindow = [窗体句柄]
DISPLAYMODE建议获取当前的值就行了,我窗口化一直是如此的.
补充:VB , 基础类