Windows 10即时分辨率更改是否有API?

在“ Windows设置”中,更改显示分辨率通常会在不更改图形驱动程序的显示分辨率的情况下调整桌面大小,从而导致近乎瞬时的“模式切换”。

是否有Windows API可以触发此功能以切换桌面分辨率?使用ChangeDisplaySettings或ChangeDisplaySettingsEx,即使在图形驱动程序中设置了GPU缩放比例,也会导致屏幕暂时空白。

likui120 回答:Windows 10即时分辨率更改是否有API?

设置应用正在使用以下API:SetDisplayConfig

样本:(已删除错误检查)

#include <windows.h>


int main()
{
    UINT32 numPathArrayElements=0,numModeInfoArrayElements = 0;
    UINT32 filter = QDC_ALL_PATHS;
    GetDisplayConfigBufferSizes(filter,&numPathArrayElements,&numModeInfoArrayElements);

    DISPLAYCONFIG_PATH_INFO* pathArray = new DISPLAYCONFIG_PATH_INFO[numPathArrayElements];
    DISPLAYCONFIG_MODE_INFO* modeInfoArray = new DISPLAYCONFIG_MODE_INFO[numModeInfoArrayElements];
    ZeroMemory(pathArray,sizeof(DISPLAYCONFIG_PATH_INFO)* numPathArrayElements);
    ZeroMemory(modeInfoArray,sizeof(DISPLAYCONFIG_MODE_INFO)* numModeInfoArrayElements);
    QueryDisplayConfig(filter,pathArray,&numModeInfoArrayElements,modeInfoArray,NULL);

    int ix = pathArray[0].sourceInfo.modeInfoIdx; //assuming path[0] is primary
    modeInfoArray[ix].sourceMode.width = 1280;
    modeInfoArray[ix].sourceMode.height = 720;
    SetDisplayConfig(numPathArrayElements,numModeInfoArrayElements,SDC_APPLY | SDC_USE_SUPPLIED_DISPLAY_CONFIG | SDC_ALLOW_CHANGES | SDC_SAVE_TO_DATABASE);
    return 0;
}
本文链接:https://www.f2er.com/3115174.html

大家都在问