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

Mic*_*bbé 3 c++ macos graphics resolution

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

如果有多个显示器,则需要是主显示器.这是硬件加速(OpenGL)应用程序将在全屏幕中启动的显示,通常是顶部有菜单栏的显示.

在Windows中,我可以成功使用GetSystemMetrics().我怎么能在OS X上这样做?

Dan*_*dey 6

使用CoreGraphics:

CGRect mainMonitor = CGDisplayBounds(CGMainDisplayID());
CGFloat monitorHeight = CGRectGetHeight(mainMonitor);
CGFloat monitorWidth = CGRectGetWidth(mainMonitor);
Run Code Online (Sandbox Code Playgroud)

有关Apple Quartz Display Services Reference的更多信息.

  • 对于后代的注意事项:此代码使用Carbon,因此它不适用于Leopard或Snow Leopard上的64位应用程序. (3认同)