它是DirectDraw接口的核心
| LPDIRECTDRAW lpDD; if( DirectDrawCreate( NULL, &lpDD, NULL ) != DD_OK ) return FALSE; |
| HRESULT DirectDrawCreate(GUID FAR * lpGUID, LPDIRECTDRAW FAR * lplpDD, IUnknown FAR * pUnkOuter) |
| 参数 | 描述 | 示例 |
|---|---|---|
| lpGUID | 指向DirectDraw接口的全局唯一标志符 | NULL |
| lplpDD | 接受初始化成功的DirectDraw对象的地址 | &lpDD |
| pUnkOuter | 备用 | NULL |
| 返回值 | 成功返回 DD_OK |
| if ( lpDD->SetCooperativeLevel( GetActiveWindow(),DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN ) != DD_OK) return FALSE; |
| HRESULT SetCooperativeLevel( HWND hWnd, DWORD dwFlags ) |
| 参数 | 描述 | 示例 |
|---|---|---|
| hWnd | 主窗口句柄 | GetActiveWindow() |
| dwFlags | 控制级的标志符 | DDSCL_EXCLUSIVE : 独占 DDSCL_FULLSCREEN : 全屏
|
| 返回值 | 成功返回 DD_OK |
| if ( lpDD->SetDisplayMode( 640, 480, 8 ) != DD_OK) return FALSE; |
| 参数 | 描述 | 示例 |
|---|---|---|
| 屏幕宽度 | ||
| 屏幕高度 | ||
| 色深(位数) | ||
| 返回值 | 成功返回 DD_OK |
| if ( lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL ) != DD_OK) return FALSE; |
| 参数 | 描述 | 示例 |
|---|---|---|
| 页面信息的 DDSURFACEDESC 结构的地址 | ||
| 接收主页面指针的地址 | ||
| 保留 | ||
| 返回值 | 成功返回 DD_OK |
| 参数 | 描述 |
|---|---|
| dwSize | 结构本身大小 |
| dwFlags | DDSD_CAPS : 结构有效(总是需要) DDSD_WIDTH : 指定了宽度 DDSD_HEIGHT : 指定了高度 DDSD_PIXELFORMAT : 指定了色深 DDSD_BACKBUFFERCOUNT : 指定了附加页数 |
| dwHeight | 高度 |
| dwWidth | 宽度 |
| lPitch / dwLinearSize | |
| dwBackBufferCount | 附加页数 |
| dwMipMapCount / dwZBufferBitDepth / dwRefreshRate | |
| dwAlphaBitDepth | |
| dwReserved | |
| lpSurface | |
| ddckCKDestOverlay | |
| ddckCKDestBlt | |
| ddckCKSrcOverlay | |
| ddckCKSrcBlt | |
| ddpfPixelFormat.dwSize | 点格式结构本身大小 |
| ddpfPixelFormat.dwRGBBitCount | 色深 |
| ddpfPixelFormat.dwFlags | DDPF_RGB :
DDPF_PALETTEINDEXED8 : 8位调色板 |
| ddsCaps.dwCaps | DDSCAPS_PRIMARYSURFACE : 主页面 DDSCAPS_OFFSCREENPLAIN : 离屏页面 DDSCAPS_COMPLEX : 复杂页面 DDSCAPS_FLIP : 换页链 |