更改显示器设置(Windows API)

我已经想出了如何使用Visual C ++中的Windows API来获取显示设备设置并更改显示设备设置。 (EnumDisplayDevice,EnumDisplaySettings和ChangeDisplaySettings)

但是,如果您愿意,我有4个不同的“监视器”,我想要configuration,但具有多个configuration不同的设置。

一种configuration涉及将桌面扩展到3个监视器的设置,第四个监视器被禁用,并且监视器设置为[监视器3] [监视器1 – 主要] [监视器2]。

其他configuration为[Monitor 3/4 – Duplicated] [Monitor 1 – Main] [Monitor 2]和[Monitor 3/4 – Main / Duplicated],其中1和2被禁用。

通过API文档查看,有一些关于DEVMODE POINTL dmPosition,我认为这是指监视器的位置。 我想知道如果Windows API会自动告诉监视器复制或扩展的基础上,屏幕的位置。

有没有人做过类似的事情,并评论如何去做这件事?