在 MFC 中创建 window 时如何获得最大可能的 window 大小?
How to get maximum possible window size when creating window in MFC?
我需要获得正在创建的 window 的最大可能高度和宽度(window 首先没有最大化)。怎么做?
您可以获得屏幕高度和宽度,并传递该值以获得最大可能尺寸 window。
试试这个:
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);
或者如果您的 window 存在
,则可以确定特定显示器的工作区大小
CRect rectWorkArea;
MONITORINFO mi;
mi.cbSize = sizeof(mi);
::GetMonitorInfo(::MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST), &mi);
rectWorkArea = mi.rcWork;
MONITORINFO
还包含显示器尺寸。
取决于您需要做什么。
我需要获得正在创建的 window 的最大可能高度和宽度(window 首先没有最大化)。怎么做?
您可以获得屏幕高度和宽度,并传递该值以获得最大可能尺寸 window。
试试这个:
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);
或者如果您的 window 存在
,则可以确定特定显示器的工作区大小CRect rectWorkArea;
MONITORINFO mi;
mi.cbSize = sizeof(mi);
::GetMonitorInfo(::MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST), &mi);
rectWorkArea = mi.rcWork;
MONITORINFO
还包含显示器尺寸。
取决于您需要做什么。