從DOS,街機到手機遊戲都是以全屏出現,全屏顯示只需加入小量代碼
- 填充DEVMODE數據結構
- 設定屏幕寬度dmPelsWidth
- 設定屏幕高度dmPelsHeight
- 設定屏幕像素BIT數dmBitsPerPel
- 設定有效字dmFields
- 調用ChangeDisplaySettings(&devmode,CDS_FULLSCREEN)進入全屏模式,成功設定返回DISP_CHANGE_SUCCESSFUL
- 創建窗口CreateWindowEx()
- 擴展樣式設為全屏窗口WS_EX_APPWINDOW
- 窗口樣式樣式設為無邊框窗口WS_POPUP
- 窗口寬高需等於屏幕寬高
- 隱藏鼠標ShowCursor(false);
設定為全屏需在CreateWindow之前調用,下面是完整的代碼
bool Set_FullScreen_OpenGL(int screenWidth,int screenHeight,int screenBpp )
{
DEVMODE devmode;
memset(&devmode,0,sizeof(devmode));// 清零
devmode.dmSize = sizeof(DEVMODE);// 填充DEVMODE
devmode.dmPelsWidth = screenWidth;// 屏幕寬度
devmode.dmPelsHeight = screenHeight;// 屏幕高度
devmode.dmBitsPerPel = screenBpp;// 屏幕像素BIT數
devmode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;// 設定有效字段
// 設為全屏
if(ChangeDisplaySettings(&devmode,CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL)
OpenGL_FullScreen = true;
else
OpenGL_FullScreen = false;
return OpenGL_FullScreen;
}
退出程序時恢復為窗口模式
bool Set_Window_OpenGL()
{ // 設為窗口模式
if(ChangeDisplaySettings(NULL,0) == DISP_CHANGE_SUCCESSFUL)
{
OpenGL_FullScreen = false;
ShowCursor(true);// 顯示鼠標
}
return OpenGL_FullScreen;
}