So erhalten Sie eine Windows-Bildschirmauflösung

Methode 1: MonitorFromWindow

//获取程序当前所在显示器的分辨率大小,可以动态的获取程序所在显示器的分辨率
SIZE GetScreenResolution(HWND hWnd) {
    
    
    SIZE size;
    if(!hWnd)
        return size;

    //MONITOR_DEFAULTTONEAREST 返回值是最接近该点的屏幕句柄
    //MONITOR_DEFAULTTOPRIMARY 返回值是主屏幕的句柄
    //如果其中一个屏幕包含该点,则返回值是该屏幕的HMONITOR句柄。如果没有一个屏幕包含该点,则返回值取决于dwFlags的值
    HMONITOR hMonitor = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST);
    MONITORINFOEX miex;
    miex.cbSize = sizeof(miex);
    if (!GetMonitorInfo(hMonitor, &miex))
        return size;

    DEVMODE dm;
    dm.dmSize = sizeof(dm);
    dm.dmDriverExtra = 0;

    //ENUM_CURRENT_SETTINGS 检索显示设备的当前设置
    //ENUM_REGISTRY_SETTINGS 检索当前存储在注册表中的显示设备的设置
    if (!EnumDisplaySettings(miex.szDevice, ENUM_CURRENT_SETTINGS, &dm))
        return size;

    size.cx = dm.dmPelsWidth;
    size.cy = dm.dmPelsHeight;
    return size;
}

Methode 2: SystemParametersInfo

//获取可用桌面大小
RECT rect;
SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);
int cx = rect.right - rect.left;
int cy = rect.bottom - rect.top;

Methode 3: GetSystemMetrics

//多显示器时,使用SM_CXSCREEN,SM_CYSCREEN获取只是主屏大小
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);

Methode 4: GetDeviceCaps

//在多显示器系统中,GetDeviceCaps 函数返回主显示器的功能。如果你想为其他显示器的信息,则必须使用多显示器的 API 函数或调用 CreateDC 函数得到一个 hdc 指定显示器的设备环境
HDC hdcScreen = GetDC(NULL);
int cx = GetDeviceCaps(hdcScreen, HORZRES);
int cy = GetDeviceCaps(hdcScreen, VERTRES);
DeleteObject(hdcScreen);

wichtig

Begrüßen Sie alle, die meinem persönlichen öffentlichen WeChat-Konto folgen, um C ++ - Sprache, verschiedene Computerkenntnisse, Erfahrungsaustausch am Arbeitsplatz und verschiedene programmiererbezogene Kenntnisse und Erfahrungen, die Sie wissen möchten, zu diskutieren und zu lernen!
Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/siyacaodeai/article/details/112971964
Empfohlen
Rangfolge