GetPhysicalMonitorsFromHMONITOR 函数 (physicalmonitorenumerationapi.h)

检索与 HMONITOR 监视器句柄关联的物理监视器。

语法

_BOOL GetPhysicalMonitorsFromHMONITOR(
  [in]  HMONITOR           hMonitor,
  [in]  DWORD              dwPhysicalMonitorArraySize,
  [out] LPPHYSICAL_MONITOR pPhysicalMonitorArray
);

参数

[in] hMonitor

监视器句柄。 监视器句柄由多个多显示器监视器函数返回,包括 EnumDisplayMonitorsMonitorFromWindow,它们是图形设备接口 (GDI) 的一部分。

[in] dwPhysicalMonitorArraySize

pPhysicalMonitorArray 中的元素数。 若要获取所需的数组大小,请调用 GetNumberOfPhysicalMonitorsFromHMONITOR

[out] pPhysicalMonitorArray

指向PHYSICAL_MONITOR结构的数组 指针。 调用方必须分配数组。

返回值

如果函数成功,则返回值为 TRUE。 如果函数失败,则返回值为 FALSE。 要获得更多的错误信息,请调用 GetLastError。

注解

单个 HMONITOR 句柄可以与多个物理监视器相关联。 此函数返回每个物理监视器的句柄和文本说明。

使用完监视器句柄后,通过将 pPhysicalMonitorArray 数组传递给 DestroyPhysicalMonitors 函数来关闭它们。

示例


HMONITOR hMonitor = NULL;
DWORD cPhysicalMonitors;
LPPHYSICAL_MONITOR pPhysicalMonitors = NULL;

// Get the monitor handle.
hMonitor = MonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY);

// Get the number of physical monitors.
BOOL bSuccess = GetNumberOfPhysicalMonitorsFromHMONITOR(
  hMonitor, 
  &cPhysicalMonitors
   );

if (bSuccess)
{
    // Allocate the array of PHYSICAL_MONITOR structures.
    pPhysicalMonitors = (LPPHYSICAL_MONITOR)malloc(
        cPhysicalMonitors* sizeof(PHYSICAL_MONITOR));

    if (pPhysicalMonitors != NULL)
    {
        // Get the array.
        bSuccess = GetPhysicalMonitorsFromHMONITOR(
            hMonitor, cPhysicalMonitors, pPhysicalMonitors);

       // Use the monitor handles (not shown).

        // Close the monitor handles.
        bSuccess = DestroyPhysicalMonitors(
            cPhysicalMonitors, 
            pPhysicalMonitors);

        // Free the array.
        free(pPhysicalMonitors);
    }
}

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 physicalmonitorenumerationapi.h
Library Dxva2.lib
DLL Dxva2.dll

另请参阅

监视配置函数