|
|
下面是我的代码,建立的是ddraw全屏的环境,我想改为窗口模式,不知道要做那些改动,
我把协调层级函数(pDD7->SetCooperativeLevel)里的参数
(DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN|DDSCL_ALLOWREBOOT )
改为DDSCL_NORMAL但是不行。请大家帮个忙,谢谢。
//建立dx对象
result = DirectDrawCreateEx(NULL, (VOID**)&pDD7, IID_IDirectDraw7, NULL);
//协调层级,参数1、该应用程序句柄,2、独占|全屏|允许用ctrl等建
result = pDD7->SetCooperativeLevel(mhWnd,DDSCL_EXCLUSIVE |
DDSCL_FULLSCREEN|DDSCL_ALLOWREBOOT );
//设置显示模式1、2、分辨率3、色位16位、4、刷新率0为默认当前刷新率5、标准VGA模式
result = pDD7->SetDisplayMode(800,600,16,0,DDSDM_STANDARDVGAMODE);
//清空desc所在的内存
memset(&desc,0,sizeof(desc));
desc.dwSize = sizeof(desc);
//标志一会要用到的成员函数
desc.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
//后缓冲区数量
desc.dwBackBufferCount = 1;
//描述结构设置 主绘图页|允许叠加|允许翻转
desc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_COMPLEX | DDSCAPS_FLIP;
//建立主绘图页
result = pDD7->CreateSurface(&desc,&pPSur,NULL);
//描述结构设置,后缓冲区
caps.dwCaps = DDSCAPS_BACKBUFFER;
//建立后缓冲区
result = pPSur->GetAttachedSurface(&caps,&pBBuf);
memset(&desc,0,sizeof(desc));
desc.dwSize = sizeof(desc);
desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
//描述结构设置 幕后暂存区
desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN ;
desc.dwWidth = 800;
desc.dwHeight = 600;
//建立幕后暂存区
for(int i=0;i<40;i++)
{
result = pDD7->CreateSurface(&desc, &pOPla, NULL);
}
abcabc |
|