ITPub博客

首页 > 应用开发 > IT综合 > 快速代码展示之快速的例子代码片段(转)

快速代码展示之快速的例子代码片段(转)

原创 IT综合 作者:post0 时间:2007-08-12 20:12:42 0 删除 编辑
快速代码展示之快速的例子代码片段(转)[@more@]

  [创建一个DirectDraw对象]

  

  LPDIRECTDRAW lpDD;

  HRESULT ddrval;

  ddrval = DirectDrawCreate( NULL, &lpDD, NULL );

  if( ddrval != DD_OK )

  {

  // 在这里输出一些错误检测代码

  }

  

  [设置协作级别]

  

  ddrval = lpDD->SetCooperativeLevel( hWnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );

  if( ddrval != DD_OK)

  {

  // 在这里输出一些错误检测代码

  }

  

  [设置视频模式]

  

  ddrval = lpDD->SetDisplayMode( 640, 480, 8);

  if( ddrval != DD_OK)

  {

  // 在这里输出一些错误检测代码

  }

  

  [创建主表面]

  

  LPDIRECTDRAWSURFACE lpDDSPrimary;

  DDURFACEDESC ddsd;

  HRESULT ddrval;

  

  // 清除结构中所有的数据

  memset( &&ddsd, 0, sizeof(ddsd) );

  

  // 设置标记

  ddsd.dwSize = sizeof( ddsd );

  ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;

  ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;

  ddsd.dwBackBufferCount = 1;

  

  // 创建表面

  ddrval = lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL );

  

  if( ddrval != DD_OK )

  {

  // 在这里输出一些错误检测代码

  }

  

  [创建后表面]

  

  DDSCAPS ddscaps;

  

  LPDIRECTDRAWSURFACE lpDDSBack; ddscaps.dwCaps = DDSCAPS_BACKBUFFER;

  ddrval = lpDDSPrimary->GetAttachedSurface( &ddscaps, &lpDDSBack );

  if( ddrval != DD_OK )

  {

  // 在这里输出一些错误检测代码

  }

  

  [创建离屏表面]

  

  LPDIRECTDRAWSURFACE lpDDSOffscreen;

  DDSURFACEDESC ddsd;

  HRESULT ddrval;

  

  ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;

  ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;

  ddsd.dwHeight = 480;

  ddsd.dwWidth = 640;

  

  ddrval = lpDD->CreateSurface( &ddsd, &lpDDSOffscreen, NULL );

  if( ddrval != DD_OK )

  {

  // 在这里输出一些错误检测代码

  

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8225414/viewspace-951806/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    2018
  • 访问量
    8225676