在MFC中创建窗口时如何获得最大可能的窗口大小?

goo*_*ing 5 c++ mfc

我需要获得正在创建的窗口的最大可能高度和宽度(窗口不会首先最大化)。怎么做?

xMR*_*MRi 2

您可以将GetSystemMetricsSM_CXSCREEN和 一起使用SM_CYSCREEN。这是主显示器的宽度和高度。

另一种方法是确定桌面工作区大小:

CRect rectWorkArea;
SystemParametersInfo(SPI_GETWORKAREA,0,&rectWorkArea,0);
Run Code Online (Sandbox Code Playgroud)

或者确定窗口存在时特定监视器的工作区域的大小

CRect rectWorkArea;
MONITORINFO mi;
mi.cbSize = sizeof(mi);
::GetMonitorInfo(::MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST), &mi);
rectWorkArea = mi.rcWork;
Run Code Online (Sandbox Code Playgroud)

MONITORINFO还包含显示器尺寸。

取决于你需要做什么。