如何在 C++ 中获得 Mac OS X 中主显示器的分辨率?

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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];

以上是关于如何在 C++ 中获得 Mac OS X 中主显示器的分辨率?的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X 10.7 (Lion) 中的 Nano 语法高亮显示?

如何在 MAC OS X 中获得最大 TCP 接收/发送窗口?

如何在 Mac OS X 上使用 C++ 播放声音?

PySide 全屏 Mac os x 小部件

如何在Mac OS X中显示隐藏的文件

在 Mac OS X 上检索系统信息 [关闭]