GPUs work best with certian resolutions like 800x600, 1024x768, and so on. My question is: Should I, or should I not, use AdjustWindowRect() when turning full screen? I do want my client rectangle size to be 800x600 when my window is in windowed mode, but I'm not sure if my resolution is 800x600 when mode switching from windowed mode to full screen mode. For your information, I'm using Direct3D 11 to get my window full screen, and I'm not sure if it work the same way as normal Win32 mode switching do, but I hope you still can help me.
Your problem is solved by knowing the screen resolution.
1. Use MonitorFromWindow() to find out which monitor your window is currently shown.
2. Use EnumDisplayMonitors() to gather the information on all monitors. This includes the monitor handle to compare with the one obtained in #1 as well as screen resolutions.
3. Decide what to do: You can stay in the current monitor if it is large enough, or you can move using SetWindowPos() to a different monitor.
4. Call AdjustWindowRect() to obtain the desired client area.
That's how I would do it in a regular application. I don't know, however, anything about DirectX or game programming, so maybe there's a better way out there that I'm unaware of for this particular case.