我正在尝试在第二个显示器上启动全屏窗口。我已将计算机设置为扩展显示。我尝试了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);