关于DirectDraw的问题???

yangyi198381 2007-09-02 08:50:17
DDSURFACEDESC ddsd;
::ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
hRet = lpDD->CreateSurface(&ddsd, &lpFrontBuffer, NULL);

hRet的值为什么不是DD_OK,如果我想要获得错误的返回值,应该怎么做,是不是只能switch每个错误信息,还是有什么简便的方法????
...全文
994 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizh0912 2008-05-22
  • 打赏
  • 举报
回复
可能是你在SetCooperativeLevel设置时不支持你设置的设置模式,有可能你当前环境不支持,换一下模式试试
rhwfyf 2007-09-06
  • 打赏
  • 举报
回复
lpDD->SetCooperativeLevel()设置的控制级别是什么?

如果是窗口模式,创建主页面是不能用DDSCAPS_FLIP和DDSCAPS_COMPLEX这两个参数.
yangyi198381 2007-09-03
  • 打赏
  • 举报
回复
这样做是不是太麻烦了,有没有高手解释一下,谢谢!!!
caitian6 2007-09-03
  • 打赏
  • 举报
回复
up
tracing 2007-09-03
  • 打赏
  • 举报
回复
我就是这么做的,just do it
CString GetDirectDrawError(HRESULT hResult)
{
switch(hResult)
{
case DDERR_GENERIC: //DDERR_GENERIC
return _T("DDERR_GENERIC");
case DDERR_INVALIDCLIPLIST: //DDERR_INVALIDCLIPLIST
return _T("DDERR_INVALIDCLIPLIST");
case DDERR_INVALIDOBJECT: //DDERR_INVALIDOBJECT
return _T("DDERR_INVALIDOBJECT");
case DDERR_INVALIDPARAMS: //DDERR_INVALIDPARAMS
return _T("DDERR_INVALIDPARAMS");
case DDERR_INVALIDRECT: //DDERR_INVALIDRECT
return _T("DDERR_INVALIDRECT");
case DDERR_NOALPHAHW: //DDERR_NOALPHAHW
return _T("DDERR_NOALPHAHW");
case DDERR_NOBLTHW: //DDERR_NOBLTHW
return _T("DDERR_NOBLTHW");
case DDERR_NOCLIPLIST: //DDERR_NOCLIPLIST
return _T("DDERR_NOCLIPLIST");
case DDERR_NODDROPSHW: //DDERR_NODDROPSHW
return _T("DDERR_NODDROPSHW");
case DDERR_NOMIRRORHW: //DDERR_NOMIRRORHW
return _T("DDERR_NOMIRRORHW");
case DDERR_NORASTEROPHW: //DDERR_NORASTEROPHW
return _T("DDERR_NORASTEROPHW");
case DDERR_NOROTATIONHW: //DDERR_NOROTATIONHW
return _T("DDERR_NOROTATIONHW");
case DDERR_NOSTRETCHHW: //DDERR_NOSTRETCHHW
return _T("DDERR_NOSTRETCHHW");
case DDERR_NOZBUFFERHW: //DDERR_NOZBUFFERHW
return _T("DDERR_NOZBUFFERHW");
case DDERR_SURFACEBUSY: //DDERR_SURFACEBUSY
return _T("DDERR_SURFACEBUSY");
case DDERR_SURFACELOST: //DDERR_SURFACELOST
return _T("DDERR_SURFACELOST");
case DDERR_UNSUPPORTED: //DDERR_UNSUPPORTED
return _T("DDERR_UNSUPPORTED");
case DDERR_WASSTILLDRAWING: //DDERR_WASSTILLDRAWING
return _T("DDERR_WASSTILLDRAWING");
case DDERR_INVALIDSURFACETYPE: //DDERR_INVALIDSURFACETYPE
return _T("DDERR_INVALIDSURFACETYPE");
case DDERR_INVALIDPIXELFORMAT: //DDERR_INVALIDPIXELFORMAT
return _T("DDERR_INVALIDPIXELFORMAT");
case DDERR_INVALIDCAPS: //DDERR_INVALIDCAPS
return _T("DDERR_INVALIDCAPS");
case DDERR_NOTFOUND: //DDERR_NOTFOUND
return _T("DDERR_NOTFOUND");
case DDERR_INCOMPATIBLEPRIMARY: //DDERR_INCOMPATIBLEPRIMARY
return _T("DDERR_INCOMPATIBLEPRIMARY");
case DDERR_NOCOOPERATIVELEVELSET: //DDERR_NOCOOPERATIVELEVELSET
return _T("DDERR_NOCOOPERATIVELEVELSET");
case DDERR_NODIRECTDRAWHW: //DDERR_NODIRECTDRAWHW
return _T("DDERR_NODIRECTDRAWHW");
case DDERR_NOEMULATION: //DDERR_NOEMULATION
return _T("DDERR_NOEMULATION");
case DDERR_NOEXCLUSIVEMODE: //DDERR_NOEXCLUSIVEMODE
return _T("DDERR_NOEXCLUSIVEMODE");
case DDERR_NOFLIPHW: //DDERR_NOFLIPHW
return _T("DDERR_NOFLIPHW");
case DDERR_NOMIPMAPHW: //DDERR_NOMIPMAPHW
return _T("DDERR_NOMIPMAPHW");
case DDERR_NOOVERLAYHW: //DDERR_NOOVERLAYHW
return _T("DDERR_NOOVERLAYHW");
case DDERR_OUTOFMEMORY: //DDERR_OUTOFMEMORY
return _T("DDERR_OUTOFMEMORY");
case DDERR_OUTOFVIDEOMEMORY: //DDERR_OUTOFVIDEOMEMORY
return _T("DDERR_OUTOFVIDEOMEMORY");
case DDERR_PRIMARYSURFACEALREADYEXISTS: //DDERR_PRIMARYSURFACEALREADYEXISTS
return _T("DDERR_PRIMARYSURFACEALREADYEXISTS");
case DDERR_UNSUPPORTEDMODE: //DDERR_UNSUPPORTEDMODE
return _T("DDERR_UNSUPPORTEDMODE");
case DDERR_EXCEPTION: //DDERR_EXCEPTION
return _T("DDERR_EXCEPTION");
default:
return _T("UNKNOWNERROR");
}
return _T("UNKNOWNERROR");
}
thewintersun 2007-09-03
  • 打赏
  • 举报
回复
同问,这个问题也困扰我好久了
你这个是不是没有指定dwWidth和dwHeight啊???
试一试看看:)

19,468

社区成员

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

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