DirectDraw创建窗口程序的注意事项
2015-01-23 14:11
113 查看
对于DirectDraw的大多数教程都是使用全屏独占模式的,但是有时候调试的时候,或者其他情况就感觉很不好用。 所以就使用DirectDraw创建一个窗口程序,非全屏模式。
先说下注意事项:
1. 创建窗口模式的时候,设置协作模式的时候窗口的类别要用 DDSCL_NORMAL ,不能跟DDSCL_EXCLUSIVE一起使用。
2.然后就是不能设置显示模式。 为什么不能设置,我也不知道。 我就是这一步卡了很久。 以为改了设置协作模式,就可以了。
3.就是DirectDraw规定使用窗口模式的时候不能使用后备缓冲。 就是不能创建一个后备缓冲的页面。,主页面创建的时候不能有。 BackBuffer ,Flip,Complex一系列的标志。
然后就是代码了:
if (FAILED(DirectDrawCreateEx(NULL,(void **)&lpDD,IID_IDirectDraw7,NULL))) //创建DirectDraw接口
{
return 0;
}
if (FAILED(lpDD->SetCooperativeLevel(window_handle,DDSCL_NORMAL))) //设置协作模式,
{
return 0;
}
DDRAW_INIT_STRUCT(ddsd); //初始化设备页面描述表
ddsd.dwFlags=DDSD_CAPS;
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE;
if (FAILED(lpDD->CreateSurface(&ddsd,&lpDDPrimary,NULL))) //创建主页面。
{
return 0;
}
DDRAW_INIT_STRUCT(ddsd);
ddsd.dwFlags=DDSD_WIDTH | DDSD_HEIGHT;
ddsd.dwWidth=SCREEN_WIDTH;
ddsd.dwHeight=SCREEN_HEIGHT;
if (FAILED(lpDD->CreateSurface(&ddsd,&lpDDBuffer,NULL))) //创建第二个页面,不是后备缓冲,是离屏页面。
{
return 0;
}
使用DirectDraw创建一个窗口模式就是这样了,记住不能设置显示模式,不能用后备缓冲。
先说下注意事项:
1. 创建窗口模式的时候,设置协作模式的时候窗口的类别要用 DDSCL_NORMAL ,不能跟DDSCL_EXCLUSIVE一起使用。
2.然后就是不能设置显示模式。 为什么不能设置,我也不知道。 我就是这一步卡了很久。 以为改了设置协作模式,就可以了。
3.就是DirectDraw规定使用窗口模式的时候不能使用后备缓冲。 就是不能创建一个后备缓冲的页面。,主页面创建的时候不能有。 BackBuffer ,Flip,Complex一系列的标志。
然后就是代码了:
if (FAILED(DirectDrawCreateEx(NULL,(void **)&lpDD,IID_IDirectDraw7,NULL))) //创建DirectDraw接口
{
return 0;
}
if (FAILED(lpDD->SetCooperativeLevel(window_handle,DDSCL_NORMAL))) //设置协作模式,
{
return 0;
}
DDRAW_INIT_STRUCT(ddsd); //初始化设备页面描述表
ddsd.dwFlags=DDSD_CAPS;
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE;
if (FAILED(lpDD->CreateSurface(&ddsd,&lpDDPrimary,NULL))) //创建主页面。
{
return 0;
}
DDRAW_INIT_STRUCT(ddsd);
ddsd.dwFlags=DDSD_WIDTH | DDSD_HEIGHT;
ddsd.dwWidth=SCREEN_WIDTH;
ddsd.dwHeight=SCREEN_HEIGHT;
if (FAILED(lpDD->CreateSurface(&ddsd,&lpDDBuffer,NULL))) //创建第二个页面,不是后备缓冲,是离屏页面。
{
return 0;
}
使用DirectDraw创建一个窗口模式就是这样了,记住不能设置显示模式,不能用后备缓冲。
相关文章推荐
- 创建一个windows服务的小程序及注意事项
- 使用.net框架应用C#语言开发窗口程序的一些注意事项
- 包含别人的dll,然后我们用类库再次封装成dll的时候的注意事项;源文件与模块生成时的文件不同;创建调试信息文件 ··PDB时发生意外的错误,进程无法访问文件,因为另一个程序正在使用此文件
- 用CreateWindow创建窗口时的注意事项
- 如何创建原生的窗口程序
- 如何获取某个进程的主窗口以及创建进程的程序名?
- [导入]创建一个没有窗口的程序
- [导入]创建一个没有窗口的程序
- 编写跨平台Java程序注意事项
- 创建一个不显示窗口的程序(2006-03-30修订)
- 编写跨平台Java程序注意事项
- MYSQL到ORACLE程序迁移的注意事项
- 编写跨平台Java程序注意事项
- 编写跨平台Java程序注意事项
- VFP开发Dcom程序的注意事项
- [转]MYSQL到ORACLE程序迁移的注意事项
- 编写跨平台Java程序注意事项
- 入门训练:写程序应注意的事项
- [导入]创建一个没有窗口的程序
- 创建一个没有窗口的程序