Win32 C++创建第二个监视器中的窗口

3

我正在尝试在第二个显示器上启动全屏窗口。我已将计算机设置为扩展显示。我尝试了Stack Overflow上找到的所有解决方案,但它们都会在笔记本电脑屏幕上启动窗口,但其宽度和高度是监视器的大小,因此它部分延伸到监视器中。所以问题(我认为)是没有正确获取第二个监视器左上角的(x,y)坐标。

以下是代码:

DEVMODE laptop;
EnumDisplaySettings(NULL, 0, &laptop);
int endOfLaptopW=laptop.dmPelsWidth;
const POINT pt={endOfLaptopW+1, 360};//create point on second monitor
HMONITOR hmon=MonitorFromPoint(pt, NULL);
 MONITORINFO mi = { sizeof(mi) };
if (!GetMonitorInfo(hmon, &mi)) return NULL;

CreateWindow(TEXT("static"), TEXT("FULLSCREEN"), WS_POPUP|WS_VISIBLE, mi.rcMonitor.left, mi.rcMonitor.top, mi.rcMonitor.right - mi.rcMonitor.left, mi.rcMonitor.bottom - mi.rcMonitor.top, bkgrdPrintWin, NULL, g_hinst, 0);    

1
请展示您的实际代码。 - Remy Lebeau
1个回答

2

EnumDisplaySettings不是你在这里想要的函数。它罗列了图形模式,而图形模式0可能是320x200或其他小尺寸。它几乎肯定不会是你显示器当前的分辨率。

试试使用EnumDisplayMonitors函数代替。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接