【发布时间】:2015-01-06 20:18:24
【问题描述】:
我需要获得正在创建的窗口的最大可能高度和宽度(窗口没有首先最大化)。怎么做?
【问题讨论】:
-
你能再具体一点吗?而且,到目前为止,您尝试过什么?
-
我的窗口可以调整到比屏幕大,所以没有真正的最大尺寸。
我需要获得正在创建的窗口的最大可能高度和宽度(窗口没有首先最大化)。怎么做?
【问题讨论】:
您可以获取屏幕高度和宽度,并传递该值以获得最大可能的窗口大小。
试试这个:
int X = GetSystemMetrics( SM_CXSCREEN );
int Y = GetSystemMetrics( SM_CYSCREEN );
在X 中,您将获得屏幕的宽度。
在Y 中,您将获得屏幕高度。
【讨论】:
您可以将GetSystemMetrics 与SM_CXSCREEN 和SM_CYSCREEN 一起使用。这是主显示器的宽度和高度。
另一种方法是确定桌面工作区的大小:
CRect rectWorkArea;
SystemParametersInfo(SPI_GETWORKAREA,0,&rectWorkArea,0);
或者确定特定监视器的工作区大小(如果您的窗口存在)
CRect rectWorkArea;
MONITORINFO mi;
mi.cbSize = sizeof(mi);
::GetMonitorInfo(::MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST), &mi);
rectWorkArea = mi.rcWork;
MONITORINFO 还包含监视器大小。
取决于你需要做什么。
【讨论】: