如何在 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 语法高亮显示?