使用 MFC 在 2 个显示器上扩展 GUI
Posted
技术标签:
【中文标题】使用 MFC 在 2 个显示器上扩展 GUI【英文标题】:Extend GUI on 2 monitors using MFC 【发布时间】:2015-04-20 06:18:15 【问题描述】:我有三台屏幕尺寸不同的显示器。我正在使用 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);
目标是 感谢您的帮助
【问题讨论】:
最简单的解决方案可能是将宽度乘以三分之二。 实际上,我有 3 台不同屏幕尺寸的显示器。我不知道多个是可能的解决方案 我的想法是,我将确定主屏幕并将其他任务放入其中。其余屏幕将显示 GUI。有没有可能 【参考方案1】:使用EnumDisplayMonitors 获取连接到机器的所有监视器的指标,并将左侧两个监视器的大小相加。
您需要对显示器的几何形状以及它们彼此之间的排列方式进行一些假设和/或额外计算。例如,最左边的两个不一定是枚举顺序中的前两个。但这应该会为您提供执行此操作所需的数据。
【讨论】:
好建议。你能把代码提供给我吗?谢谢 不。那是你的工作。 :) 如果您遇到困难并有具体问题,请再次发布。以上是关于使用 MFC 在 2 个显示器上扩展 GUI的主要内容,如果未能解决你的问题,请参考以下文章