Open Vincent-P opened 1 year ago
Hi @Vincent-P, I agree with you, breaking alt-tab behavior is not intended. That's not a great customer experience. :)
DXGI handles this case on your behalf when using SetFullscreenState() - it will kick the window out of fullscreen. However, this sample is showing how SetFullscreenState() isn't actually needed if you want to manage the window yourself. In this case, HWND_TOP provides a much better customer experience! If you want to make a PR I'd be happy to review it.
Hello, Recently I had to implement a D3D12 rendering backend at work. I used the fullscreen sample to implement fullscreen behavior and I had a few issues. Most notably some users were complaining that Alt-tabbing did not work properly in fullscreen (e.g You cannot switch to a window on the same screen as the fullscreen window)
After a bit of debugging I found the culprit: https://github.com/microsoft/DirectX-Graphics-Samples/blob/master/Samples/Desktop/D3D12Fullscreen/src/Win32Application.cpp#L155
The sample uses
HWND_TOPMOST
when switching to fullscreen. As stated in the documentation (https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowpos), it breaks standard alt-tab behavior ("The window maintains its topmost position even when it is deactivated. "). I believe it should beHWND_TOP
instead?If the original intent is to have a topmost window, it would be great to have a comment explaining the difference between
HWND_TOP
andHWND_TOPMOST
.