好的,首先您必须创建一个设备上下文:
http://msdn.microsoft.com/en-us/library/dd183490(v=VS.85).aspx以下代码将为您提供所有监视器:
CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL)
然后,您将调用 DeviceContext 的 EnumDisplayDevices ,它将有一个指向 DISPLAY_DEVICE 结构的指针,其中包含有关显示设备设置的信息.
http://msdn.microsoft.com/en-us/library/dd162609(v=VS.85).aspx
根据 MSDN:
要查询当前会话中的所有显示设备,请循环调用此函数,从将 iDevNum 设置为 0 开始,然后递增 iDevNum 直到函数失败。要选择桌面中的所有显示设备,请仅使用 DISPLAY_DEVICE 结构中具有 DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 标志的显示设备。
要获取有关显示适配器的信息,请调用 EnumDisplayDevices,并将 lpDevice 设置为 NULL。例如,DISPLAY_DEVICE.DeviceString 包含适配器名称。
要获取有关显示监视器的信息,请首先调用 EnumDisplayDevices,并将 lpDevice 设置为 NULL。然后调用 EnumDisplayDevices,将 lpDevice 设置为 DISPLAY_DEVICE.DeviceName(第一次调用 EnumDisplayDevices 时将其设置为 DISPLAY_DEVICE.DeviceName,并将 iDevNum 设置为零)。那么 DISPLAY_DEVICE.DeviceString 就是显示器名称。
要查询与适配器关联的所有监视器设备,请在循环中调用 EnumDisplayDevices,其中 lpDevice 设置为适配器名称,iDevNum 设置为从 0 开始,iDevNum 设置为递增,直到函数失败。请注意,DISPLAY_DEVICE.DeviceName 会随着每次调用监视器信息而更改,因此您必须保存适配器名称。当适配器不再有监视器时,该功能将失败。
我不是一名 C++ 程序员,但是我必须编写一些用于显示的东西,当时我只是想帮助我记住的一点点。我对WINAPI有点生疏。