用D3D创建设备对象怎么总是失败阿?

HSxuguangxing 2008-07-27 01:57:14
我用D3D创建一个D3D对象,成功后,在创建一个D3D的设备对象,该设备对象的窗口句柄我指向了QQ飞车的窗口。可返回的窗口设备对象总是为0,也就是失败了,这是怎么回事啊?代码如下:

m_HD3D = Direct3DCreate9(D3D_SDK_VERSION);
HWND pHwnd;
pHwnd = (HWND)FindWindow(_T("GAMEAPP"),NULL); //QQ飞车的窗口句柄
if(!m_HD3D)
{
AfxMessageBox(_T("创建D3D对象失败!"));
}

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE; //创建窗口模式的Direct3D程序
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

m_HD3D->CreateDevice(
D3DADAPTER_DEFAULT, //使用缺省的显卡
D3DDEVTYPE_HAL, //指定设备类型为HAL
pHwnd, //Direct3D窗口的句柄
D3DCREATE_SOFTWARE_VERTEXPROCESSING,//硬件顶点处理
&d3dpp, &m_Device);

if(!m_Device)
{
AfxMessageBox(_T("创建设备出错!"));
//CDialog::OnCancel();
}
另外在请问一下,创建了QQ飞车的D3D设备对象以后是不是就能在该窗口进行相应的D3D操作了?例如在该窗口显示一行字!
...全文
332 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
HSxuguangxing 2008-07-27
  • 打赏
  • 举报
回复
太感谢了,高人啊,有没有相关的教程啊,如果有的话能不能给我传一份啊,我的邮箱是guangxing_xu@126.com,谢谢啊.
菜牛 2008-07-27
  • 打赏
  • 举报
回复
看看各函数返回值,检查错误。另外,即使你在别的程序窗口上创建了D3D设备对象,输出了你的文字,别的程序就丢失了窗口,也就是说没有原来的图像了,我想这不是你所需要的。要在DirectX的窗口上输出文字,需要通过Hook DirectX的技术。
HSxuguangxing 2008-07-27
  • 打赏
  • 举报
回复
怎么没人帮忙啊,自己先顶一下!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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