簡體   English   中英

在 OS X 中以編程方式獲取屏幕分辨率

[英]Get screen resolution programmatically in OS X

我想在 Mac 上以原始分辨率啟動全屏 3D C++ 應用程序。 如何檢索本機屏幕分辨率?

如果您不想使用 Objective C,請獲取您希望顯示的顯示 ID(使用例如CGMainDisplayID ),然后使用CGDisplayPixelsWideCGDisplayPixelsHigh獲取屏幕寬度和高度(以像素為單位)。 有關如何獲取其他顯示信息,請參閱“ 獲取有關顯示器的信息”。

如果您願意使用一些 Objective-C,只需使用[[NSScreen mainScreen] frame]

請注意,全屏顯示還有其他問題,即確保其他應用程序不會這樣做。 閱讀 Apple 的 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
}

注意:您還需要將 CoreGraphics 框架鏈接到您的項目。 如果您使用的是 cmake,請像下面這樣鏈接您需要的框架:

    target_link_libraries(${PROJECT_NAME}
        "-framework CoreGraphics"
        "-framework Foundation"
    )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM