Vollbildmodus mit Win32-API?
-
Hi,
kann man mit der Win32-API Fenster im den Vollbildmodus (wie bei DirectX und OpenGL) darstellen?
MfG
WilMen
-
static void changeDisplay(void) { DWORD dwExStyle; DWORD dwStyle; if (fullscreen) { DEVMODE dmScreenSettings; memset(&dmScreenSettings, 0, sizeof(dmScreenSettings)); dmScreenSettings.dmSize = sizeof(dmScreenSettings); dmScreenSettings.dmPelsWidth = fsWidth; dmScreenSettings.dmPelsHeight = fsHeight; dmScreenSettings.dmBitsPerPel = 32; dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; dwExStyle = WS_EX_APPWINDOW; dwStyle = WS_POPUP; SetWindowLongPtr(hWnd, GWL_EXSTYLE, dwExStyle); SetWindowLongPtr(hWnd, GWL_STYLE, dwStyle); SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, fsWidth, fsHeight, SWP_SHOWWINDOW); SetForegroundWindow(hWnd); SetFocus(hWnd); ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN); } else { dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; dwStyle = WS_OVERLAPPEDWINDOW; SetWindowLongPtr(hWnd, GWL_EXSTYLE, dwExStyle); SetWindowLongPtr(hWnd, GWL_STYLE, dwStyle); SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, wmWidth, wmHeight, SWP_SHOWWINDOW); SetForegroundWindow(hWnd); SetFocus(hWnd); ChangeDisplaySettings(NULL, 0); } return; }
edit:
ChangeDisplaySettings(NULL, 0);
könnte auf manchen grafik adaptern probleme machen. in dem fall musst du die
alten display settings speichern und dann mitChangeDisplaySettings(&dmScreenSettings, 0);
wiederherstellen
-
-
Danke sothis_,
ich habe deine Funktion verwendet und es funktioniert super!
MfG
WilMen