macOS CGConfigureDisplayOrigin无法正常工作

时间:2019-10-11 20:20:46

标签: macos core-graphics

我有多台显示器,并尝试使用Quarz Display API更改主显示,我的功能是

int setDisplayOrigin(CGDirectDisplayID display, int x, int y) {
    CGDisplayConfigRef cfg;
    auto ret = CGBeginDisplayConfiguration(&cfg);
    if (ret != kCGErrorSuccess) return ret;
    ret = CGConfigureDisplayOrigin(cfg, display, x, y);
    if (ret != kCGErrorSuccess) return ret;
    ret = CGCompleteDisplayConfiguration(cfg, kCGConfigureForAppOnly);
    return ret;
}

要将特定的监视器设置为主监视器,我将x和y都设为0来调用此函数

setDisplayOrigin(directDisplayID, 0, 0)

macOS确实重新排列了显示,但是当我再次检查其边界时,相关的显示将不会以(0,0)为原点,并且每个返回值都成功(KCGErrorSuccess)

1 个答案:

答案 0 :(得分:0)

感谢Ken的提示,重新定位当前的主显示器,然后将目标显示器的原点设置为(0,0),这是使其工作的方式。