在OSX中以编程方式获取屏幕分辨率 我想在Mac上的本地分辨率上推出一个全屏3D C++应用程序。 如何检索本机屏幕分辨率?

在OSX中以编程方式获取屏幕分辨率 我想在Mac上的本地分辨率上推出一个全屏3D C++应用程序。 如何检索本机屏幕分辨率?,c++,macos,core-graphics,fullscreen,C++,Macos,Core Graphics,Fullscreen,如果不希望使用Objective C,请获取希望显示的显示ID(例如使用),然后使用和获取屏幕宽度和高度(以像素为单位)。有关如何获取其他显示信息,请参见“” 如果您愿意使用一些Objective-C,只需使用 请注意,全屏显示还有其他问题,即确保其他应用程序不会这样做。更多信息,请阅读苹果OpenGL编程指南中的“”。如果您正在寻找适用于mac和windows的多平台解决方案 #include "ScreenSize.h" #if WIN32 #include <windows.h&g

如果不希望使用Objective C,请获取希望显示的显示ID(例如使用),然后使用和获取屏幕宽度和高度(以像素为单位)。有关如何获取其他显示信息,请参见“”

如果您愿意使用一些Objective-C,只需使用


请注意,全屏显示还有其他问题,即确保其他应用程序不会这样做。更多信息,请阅读苹果OpenGL编程指南中的“”。

如果您正在寻找适用于mac和windows的多平台解决方案

#include "ScreenSize.h"

#if WIN32
#include <windows.h>
#else
#include <CoreGraphics/CGDisplayConfiguration.h>
#endif

void ScreenSize::getScreenResolution(unsigned int& width, unsigned int& height) {
#if WIN32
    width = (int)GetSystemMetrics(SM_CXSCREEN);
    height = (int)GetSystemMetrics(SM_CYSCREEN);
#else
    auto mainDisplayId = CGMainDisplayID();
    width = CGDisplayPixelsWide(mainDisplayId);
    height = CGDisplayPixelsHigh(mainDisplayId);
#endif
}
#包括“ScreenSize.h”
#如果是WIN32
#包括
#否则
#包括
#恩迪夫
void ScreenSize::GetScreensolution(无符号整数和宽度、无符号整数和高度){
#如果是WIN32
宽度=(int)GetSystemMetrics(SM_CXSCREEN);
高度=(int)GetSystemMetrics(SM_CYSCREEN);
#否则
auto mainDisplayId=CGMainDisplayID();
宽度=CGDisplayPixelsWide(mainDisplayId);
高度=CGDisplayPixelsHigh(主显示ID);
#恩迪夫
}

理想情况下,应该有一个API函数(例如
fullscreenize()
),它将为您完成所有处理。然后你就可以使用你的窗口的大小。这个解决方案可能只是C++,还是Obj-C可以接受?@米塔帕卡:那不是复制品。OP明确指定了C++-另一个问题明确指定了目标C.@DeadMG Good point-my bad.:-)NSScreen mainScreen不一定返回“mainScreen”-大小似乎取决于其他因素。。。可能是最后选择的窗口?无论如何,它在实践中并没有提供一致的结果