LPDIRECTDRAW lpdd = NULL;DirectDrawCreate(NULL, &lpdd, NULL);
LPDIRECTDRAW7 lpdd7 = NULL;lpdd->QueryInterface(IID_IDirectDraw7, (LPVOID *)&lpdd7);lpdd->Release();lpdd = NULL;
FAILED()SUCCEEDED()
CoInitialize(NULL);CoCreateInstance(&CLSID_DirectDraw, NULL, CLSCTX_ALL, &IID_IDirectDraw7, &lpdd7);lpdd7->Initialize(NULL); // NULL表示使用默认的视频设备CoUninitialize();
DirectDrawCreateEx(NULL, (void **)&lpdd7, IID_IDirectDraw7, NULL);
lpdd7->SetCooperativeLevel(hWnd, DDSCL_NORMAL) // 窗口模式
lpdd7->SetCooperativeLevel(hWnd, DDSCL_FULLSCREEN |DDSCL_ALLOWMODEX |DDSCL_EXCLUSIVE |DDSCL_ALLOWREBOOT | ); // 全屏模式
lpdd7->SetDisplayMode(1024, 768, 16, 0, 0)
其中前面三个参数应该是一目了然的,后面两个0可能让人有些迷茫,其实他们代表的意思是:第一个0表示使用显卡默认的刷新率,或者可以自己设置一个刷新率,比如60。第二个0是一个额外的标记字,比如可以设置为DDSDM_STANDARDVGAMODE。这个参数很少使用,具体可以查DirectX SDK。