win7下directdraw没有启动,禁用选项,是设置错误造成的,解决方法如下;
1、首先在系统桌面,右键点击左下角的Windows徽标键,在d出菜单中点击运行菜单项。
2、接下来在打开的运行窗口中,输入命令regedit,然后点击确定按钮。
3、定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI在窗口中定位到计算机。
4、然后在右侧的窗口中,找到TimeOut注册表键值 ,接下来右键点击TimeOut键值,在d出菜单中选择“修改”菜单项。。
5、这时就会打开编辑注册表键值的窗口,在窗口中把数值数据修改为0,最后点击确定按钮,重新启动计算机后就可以禁用DirectxDraw了。
1、首先打开浏览器,百度搜索并下载“DirectX 修复工具”;
2、下载完成后,双击打开DirectX 修复工具;
3、在打开的DirectX 修复工具页面中点击“工具”-“选项”;
4、然后选择“directX加速”,可以看到下面的启用功能,点击“启用”;
5、然后就开启了DirectDraw加速和Direct3D加速功能了。
// 初始化设置DirectDrawint CObjWinThread::AfxInitDirectDraw(HWND hWnd,int width,int height)
{
m_hAfxDrawWnd=hWnd
// 屏幕大小
m_iAfxDirectWidth=width
m_iAfxDirectHeight=height
// 一>初始化DirectDraw
// 这个结构描述"页"的特徵,见 DDSURFACEDESC2结构体的简介.txt
DDSURFACEDESC ddsd
// 清空变量
memset(&ddsd,0,sizeof(ddsd))
// 结构的大小
ddsd.dwSize = sizeof(ddsd)
// 设定页的大小,
ddsd.dwWidth=m_iAfxDirectWidth
ddsd.dwHeight=m_iAfxDirectHeight
HRESULT result
result=DirectDrawCreate(NULL/*用当前的显示驱动*/,&m_pAfxDirectDraw,NULL)
if(result!=DD_OK)
return -1
// 二>设置屏幕的显示模式
// "全屏"模式下设置
m_pAfxDirectDraw->SetCooperativeLevel(m_hAfxDrawWnd, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN|DDSCL_ALLOWREBOOT)
// 设置屏幕颜色和大小(水平,垂直,颜色位数)
m_pAfxDirectDraw->SetDisplayMode(m_iAfxDirectWidth,m_iAfxDirectHeight,24)
// 三>建立前页
// 用于指定结构中那些数据是有效的,DDSD_ALL表示所有的数据成员都有效
ddsd.dwFlags=DDSD_CAPS|DDSD_BACKBUFFERCOUNT
// 后页一个
ddsd.dwBackBufferCount=1
// 指定我们用的是前页
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE|DDSCAPS_COMPLEX|DDSCAPS_FLIP
// 建立前页
result=m_pAfxDirectDraw->CreateSurface(&ddsd,&m_pAfxMainSur,NULL)
// 当发生错误时, 要记得 Release对象.
if(result!=DD_OK)
{
AfxMessageBox("建立主页失败!")
return 0
}
// 连接后缓冲区页,只有全屏方式下才行
DDSCAPS Caps
Caps.dwCaps=DDSCAPS_BACKBUFFER
result=m_pAfxMainSur->GetAttachedSurface(&Caps,&m_pAfxBackSur)
if(result!=DD_OK)
{
AfxMessageBox("连接后缓冲区失败!")
return 0
}
return 1
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)