|
Description
Using WINAPI to change the screen resolution. Calling RestoreScreenResolution() restores the mode saved before the last SetScreenResolution() call.
DEVMODE devPrevMode; BOOL bPrevSet = FALSE; BOOL SetScreenResolution(INT nWidth, INT nHeight) { DEVMODE devMode; ZeroMemory(&devMode, sizeof(DEVMODE)); devMode.dmSize = sizeof(DEVMODE); if(!EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devMode)) return FALSE; CopyMemory(&devPrevMode, &devMode, sizeof(DEVMODE)); bPrevSet = TRUE; devMode.dmPelsWidth = nWidth; devMode.dmPelsHeight = nHeight; return (ChangeDisplaySettingsEx(NULL, &devMode, NULL, 0, NULL) == DISP_CHANGE_SUCCESSFUL); } BOOL RestoreScreenResolution(VOID) { if(bPrevSet) return (ChangeDisplaySettingsEx(NULL, &devPrevMode, NULL, 0, NULL) == DISP_CHANGE_SUCCESSFUL); return FALSE; } |
|