首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让CreateWindowEx()在特定的监视器上创建窗口?

要在特定的监视器上创建窗口,可以使用Windows API中的CreateWindowEx()函数。以下是一个简单的示例,说明如何在特定的监视器上创建窗口:

  1. 首先,需要获取监视器的句柄。可以使用EnumDisplayMonitors()函数来枚举所有的监视器,并获取其句柄。
代码语言:cpp
复制
#include<windows.h>
#include<iostream>

BOOL CALLBACK EnumMonitorCallback(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
{
    std::cout << "Monitor handle: " << hMonitor<< std::endl;
    return TRUE;
}

int main()
{
    EnumDisplayMonitors(NULL, NULL, EnumMonitorCallback, 0);
    return 0;
}
  1. 然后,在CreateWindowEx()函数中,使用MONITORINFO结构体来获取监视器的位置和大小信息。
代码语言:cpp
复制
MONITORINFO monitorInfo;
monitorInfo.cbSize = sizeof(MONITORINFO);
GetMonitorInfo(hMonitor, &monitorInfo);
  1. 接下来,在CreateWindowEx()函数中,设置窗口的位置和大小,以确保它在特定的监视器上创建。
代码语言:cpp
复制
HWND hwnd = CreateWindowEx(
    WS_EX_OVERLAPPEDWINDOW,
    "MyWindowClass",
    "My Window Title",
    WS_OVERLAPPEDWINDOW,
    monitorInfo.rcMonitor.left,
    monitorInfo.rcMonitor.top,
    monitorInfo.rcMonitor.right - monitorInfo.rcMonitor.left,
    monitorInfo.rcMonitor.bottom - monitorInfo.rcMonitor.top,
    NULL,
    NULL,
    hInstance,
    NULL);

这样,就可以在特定的监视器上创建窗口了。

需要注意的是,这只是一个简单的示例,实际应用中可能需要更复杂的逻辑来确定窗口的位置和大小。此外,还需要考虑多监视器的情况,以及窗口的最小化和最大化等问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券