2008-09-28 2 views
3

У меня есть графическое приложение, которое должно протестировать разрешение дисплея, которое оно запустило в Mac OS X, чтобы оно не превышало разрешение. Это делается до инициализации самого окна.Как получить разрешение основного монитора в Mac OS X на C++?

Если есть несколько дисплеев, это должен быть основной дисплей. Это показывает, что приложения с аппаратным ускорением (OpenGL) запустится в полноэкранном режиме и, как правило, отобразится с верхней панелью меню.

В Windows я могу успешно использовать GetSystemMetrics(). Как я могу сделать это на OS X?

ответ

6

Использование CoreGraphics:

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

Больше информации в компании Apple Quartz Display Services Reference.

+3

Примечание для будущих поколений: этот код использует Carbon, поэтому он не будет работать в 64-битных приложениях на Leopard или Snow Leopard. – 2009-08-11 22:23:28

Смежные вопросы