【问题标题】:How do I get the resolution of the main monitor in Mac OS X in C++?如何在 C++ 中获得 Mac OS X 中主显示器的分辨率?
【发布时间】:2008-09-28 18:49:12
【问题描述】:

我有一个图形应用程序需要测试它在 Mac OS X 中启动的显示器的分辨率,以确保它不大于分辨率。这是在窗口本身初始化之前完成的。

如果有多个显示器,则它必须是主显示器。这是硬件加速 (OpenGL) 应用程序将以全屏模式启动的显示器,通常是顶部有菜单栏的显示器。

在 Windows 中,我可以成功使用 GetSystemMetrics()。如何在 OS X 上做到这一点?

【问题讨论】:

    标签: c++ macos graphics resolution


    【解决方案1】:

    使用 CoreGraphics:

    CGRect mainMonitor = CGDisplayBounds(CGMainDisplayID());
    CGFloat monitorHeight = CGRectGetHeight(mainMonitor);
    CGFloat monitorWidth = CGRectGetWidth(mainMonitor);
    

    更多信息请访问 Apple 的Quartz Display Services Reference

    【讨论】:

    • 后代注意:此代码使用 Carbon,因此它不适用于 Leopard 或 Snow Leopard 上的 64 位应用程序。
    • 那么64位应用怎么办
    • 类似:NSRect screenRect = [[NSScreen mainScreen] frame];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多