使用MFC在2台显示器上扩展GUI

时间:2015-04-20 06:18:16

标签: c++ visual-studio visual-studio-2012 visual-c++ mfc

我有三台不同屏幕尺寸的显示器。我在C ++中使用MFC编写GUI,将GUI从3个监视器扩展到2个监视器。这意味着我有3个显示器,但GUI只显示在2个显示器中,剩下的显示器用于其他任务。在MFC中有可能吗?你能建议我这样做吗?目前,我尝试使用以下代码和document。但它在所有监视器(3个监视器)中显示GUI。

CRect rcDesktop;
rcDesktop.left = GetSystemMetrics(SM_XVIRTUALSCREEN);
rcDesktop.right = rcDesktop.left + GetSystemMetrics(SM_CXVIRTUALSCREEN);
rcDesktop.top = GetSystemMetrics(SM_YVIRTUALSCREEN);
rcDesktop.bottom = rcDesktop.top + GetSystemMetrics(SM_CYVIRTUALSCREEN);
MoveWindow(rcDesktop, FALSE);

我也为单个监视器做了

SetParent(GetDesktopWindow());
CRect rect;
GetDesktopWindow()->GetWindowRect(&rect);
SetWindowPos(&wndTopMost,rect.left,rect.top,rect.right,rect.bottom,SWP_SHOWWINDOW);

目标是 enter image description here 谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

使用EnumDisplayMonitors获取附加到本机的所有显示器的指标,并将左侧两个尺寸的大小相加。

您需要对监视器几何以及它们相对于彼此的排列方式进行一些假设和/或其他计算。例如,最左边的两个不一定是枚举顺序中的前两个。但这应该可以为您提供所需的数据。