如何在Mac OS X上使用C ++获取主显示器的分辨率?

4
我有一个图形应用程序,需要在Mac OS X上启动时测试显示器的分辨率,以确保其不大于分辨率。这是在窗口本身初始化之前完成的。
如果有多个显示器,则需要选择主显示器。这是硬件加速(OpenGL)应用程序在全屏模式下启动的显示器,并且通常是具有顶部菜单栏的显示器。
在Windows中,我可以成功使用GetSystemMetrics()。如何在OS X上实现这一点?
1个回答

6
使用CoreGraphics:
CGRect mainMonitor = CGDisplayBounds(CGMainDisplayID());
CGFloat monitorHeight = CGRectGetHeight(mainMonitor);
CGFloat monitorWidth = CGRectGetWidth(mainMonitor);

更多信息请参阅苹果公司的Quartz显示服务参考


3
未来的读者注意:这段代码使用了Carbon,因此在Leopard或Snow Leopard上的64位应用程序中无法运行。 - Dan Udey
那么对于64位应用程序该怎么办呢? - Mehul Thakkar
NSRect screenRect = [[NSScreen mainScreen] frame]; NSRect screenRect = [[NSScreen mainScreen] frame]; - Ian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接