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

时间:2015-06-26 00:00:46

标签: c++ winapi

所以我试图在辅助显示器中启动全屏窗口。我有计算机设置来扩展显示。我已经尝试了我发现的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 个答案:

答案 0 :(得分:2)

EnumDisplaySettings不是你想要的功能。这列举了图形模式,图形模式0可能是320x200或其他小的。它几乎肯定不会是您显示器的当前分辨率。

请尝试使用EnumDisplayMonitors功能。