2,543
社区成员
发帖
与我相关
我的任务
分享
LPDIRECTDRAW7 lpDD7; // DirectDraw7 接口
LPDIRECTDRAWSURFACE7 lpDDSPrimary7; //IDirectDrawSurface7显示页
BOOL InitDDraw(void)
{
DDSURFACEDESC2 ddsd; //页面描述
HRESULT ddrval = 0; //获取函数返回值
HDC hdc; //设备环境句柄
const WCHAR* strHRESULT; //获得错误消息
const WCHAR* strDescription;
DWORD dWidth = 640,dHeight = 480; //页面的宽和高
DWORD dDepth = 8; //像素位:8, 16, 32,
ddrval = DirectDrawCreateEx(NULL,(VOID**)&lpDD7,IID_IDirectDraw7,NULL);
if (ddrval != DD_OK ) return FALSE; //创建DirectCraw对象
// 取得独占和全屏模式
ddrval = lpDD7->SetCooperativeLevel(GetActiveWindow(),DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN);
if(ddrval != DD_OK){
return FALSE;
}
//设置显示模式
ddrval = lpDD7->SetDisplayMode( dWidth, dHeight, dDepth, 0, 0); //1440*900
if ( ddrval != DD_OK){
return FALSE;
}
//填充主页面信息
ddsd.dwSize = sizeof( ddsd );
ddsd.dwFlags = DDSD_CAPS|DDSD_BACKBUFFERCOUNT;
//表明ddsd所具有的属性
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
//创建主页面对象
ddrval = lpDD7->CreateSurface( &ddsd,&lpDDSPrimary7,NULL);
if ( ddrval != DD_OK){
strHRESULT = DXGetErrorString( ddrval);
strDescription = DXGetErrorDescription( ddrval);
MessageBox(GetActiveWindow(),strDescription, strHRESULT, MB_OK );
//提示错误:Err:DDERR_INVALIDCAPS;Description:One or more of the caps bits passed to the callback are incorrect.
return FALSE;
}
/*
.....省略.........
*/
}