我正在做一个从主要窗口调用另一个窗口的应用程序。我的问题是如何确定哪个监视器(如果有2个或更多)主应用程序窗口是什么以及如何获得该监视器的句柄? 到目前为止,我的代码看起来像这样:
RECT desktop;
const HWND hDesktop = GetDesktopWindow();
GetWindowRect( hDesktop, &desktop );
int width = SInt32( desktop.right / 2 );
int height = SInt32( desktop.bottom / 2 );
OpenNewWindow( width, height );
但这只是获取桌面(主显示器)的手柄,右侧和底部是主显示器的分辨率大小。 我在C ++上写这个 谢谢!
答案 0 :(得分:1)
我找到了解决方案:
HMONITOR currentMonitor = MonitorFromWindow( GetActiveWindow(), MONITOR_DEFAULTTONEAREST );
MONITORINFO activeMonitorInfo;
activeMonitorInfo.cbSize = sizeof( MONITORINFO );
GetMonitorInfo( currentMonitor, (LPMONITORINFO) &activeMonitorInfo );
int width = SInt32( ( activeMonitorInfo.rcMonitor.right - activeMonitorInfo.rcMonitor.left ) * 0.75 );
int height = SInt32( ( activeMonitorInfo.rcMonitor.bottom - activeMonitorInfo.rcMonitor.top ) * 0.75 );
OpenNewWIndow( width, height );
GetActiveWindow会返回当前活动窗口的句柄,其余部分很容易。