directdraw 窗口

1.

// flip pages
//while(lpddsprimary->Flip(NULL, DDFLIP_WAIT)!=DD_OK);

lpddsback = lpddsprimary;

ddscaps.dwCaps = DDSCAPS_PRIMARYSURFACE;

ddsd.dwFlags = DDSD_CAPS ;

    if (lpdd->SetCooperativeLevel(main_window_handle,
           DDSCL_NORMAL)!=DD_OK)

 

 

方法:修改程序中的几个重要地方,如SetCooperativeLevel,SetDisplayMode,CreateSurface,Flip等,使程序能够以窗口模式运行。一个很好的方法是用一个预编译的宏定义(如FULLSCREEN_DEBUG)来控制编译器,使程序能够很方便的在全屏模式与窗口模式下切换,下为一例:

#ifdef FULLSCREEN_DEBUG
    lpDD->SetCooperativeLevel( hwnd, DDSCL_NORMAL);
#else
    lpDD->SetCooperativeLevel( hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
    lpDD->SetDisplayMode( 640, 480, 16);
#endif

 

http://bbs.csdn.net/topics/390108

posted @ 2017-03-11 16:29  lianhuaren  阅读(49)  评论(0)    收藏  举报