当前位置:编程学习 > VB >>

关于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 --------------------编程问答--------------------
引用 1 楼 bigwind99 的回复:
窗口模式不能用FLIP
没有BackBuffer

我改成了D3DSWAPEFFECT_DISCARD
注释掉了BackBuffer,
窗口弹出来之后就卡住了..
高手帮下忙啊, --------------------编程问答-------------------- 我只是在MSDN看过DX的资料而已,完全没用过D3D
我说的是DirectDraw7里面关于全屏和窗口模式的分别,我想和D3D也是一致的 --------------------编程问答--------------------
引用 3 楼 bigwind99 的回复:
我只是在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 ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,