怎样才能在单文档主窗口创建DirectX设备?

bluebohe 2003-11-27 11:38:01
int CDxTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CScrollView::OnCreate(lpCreateStruct) == -1)
return -1;
InitD3D(&m_pD3D,&m_pDevice,m_hWnd);
// TODO: Add your specialized creation code here

return 0;
}
void InitD3D(LPDIRECT3D9 * ppD3D,LPDIRECT3DDEVICE9 *ppDevice,HWND hWnd)
{
//创建Direct3D 对象,并获取接口IDirect3D9 的指针,
//我们将通过该指针操作Direct3D 对象。
*ppD3D = ::Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS d3dpp;
::ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE; //创建窗口模式的Direct3D 程序
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
//调用方法IDirect3D9::CreateDevice 创建设备对象,并获取
//接口IDirect3DDevice9 的指针,我们将通过该指针操作设备对象
(*ppD3D)->CreateDevice(
D3DADAPTER_DEFAULT, //使用缺省的显卡
D3DDEVTYPE_HAL, //指定设备类型为HAL
hWnd, //Direct3D窗口的句柄
D3DCREATE_SOFTWARE_VERTEXPROCESSING,//软件顶点处理
&d3dpp, ppDevice);
}
运行到最后一个语句出错:DEBUG输出:
Direct3D9: (ERROR) :Failed to create driver surface
Direct3D9: (ERROR) :Failed to initialize primary swapchain
Direct3D9: (ERROR) :Failed to initialize Framework Device. CreateDevice Failed.
怎样才能不出错?

不好意思,因为没怎么用过DirectX,问题一大堆
...全文
163 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluebohe 2003-12-09
  • 打赏
  • 举报
回复
call it in OnInitialUpdate()
呵呵,原来就是这么简单的问题……
bluebohe 2003-12-09
  • 打赏
  • 举报
回复
多谢你提供的帮助!我想能够完成相应的功能了,这样的话就好办了,结贴,给分。
saucer 2003-12-09
  • 打赏
  • 举报
回复
call it in OnInitialUpdate()

I don't have DirectX installed, so cannot verify the code in this article:

http://www.moon-labs.com/resources/IntegratingDirect3D9.0WithMFC.pdf

also see
Using Direct3D with MFC
http://www.cs.wisc.edu/~tlabonne/d3dmfc.html
bluebohe 2003-12-02
  • 打赏
  • 举报
回复
我就是想在View中创建DirectX设备,为什么不成功?是不是因为View是子窗口,不能在子窗口中创建DirectX设备?
(*ppD3D)->CreateDevice(
D3DADAPTER_DEFAULT, //使用缺省的显卡
D3DDEVTYPE_HAL, //指定设备类型为HAL
hWnd, //Direct3D窗口的句柄
D3DCREATE_SOFTWARE_VERTEXPROCESSING,//软件顶点处理
&d3dpp, ppDevice);

蒋晟 2003-12-02
  • 打赏
  • 举报
回复
http://www.gameres.com/Articles/Program/Abstract/Thinking/MFCDX8.htm
bluebohe 2003-12-02
  • 打赏
  • 举报
回复
帮个忙?
ycxw 2003-12-01
  • 打赏
  • 举报
回复
帮你up!!
bluebohe 2003-12-01
  • 打赏
  • 举报
回复
up
bluebohe 2003-11-27
  • 打赏
  • 举报
回复
小问题,为了快速得到答案,加些分

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧