我正在尝试使用 ChangeDisplaySettingsEx 函数将桌面拉伸到两台显示器。我希望桌面分辨率为 3840x1080 而不是 1920x1080 分辨率。我尝试了以下方法:
POINTL posPrimary={0};
posPrimary.x=0
posPrimary.y=0;
DEVMODE mode_primary = {0};
mode_primary.dmSize = sizeof(mode_primary);
mode_primary.dmFields = DM_POSITION;
mode_primary.dmPosition = posPrimary;
mode_primary.dmPelsWidth = 3840;
mode_primary.dmPelsHeight = 1080;
LONG status = ChangeDisplaySettingsEx(
nameofMonitor,
&mode_primary,
nullptr, // reserved
CDS_SET_PRIMARY | CDS_UPDATEREGISTRY,
nullptr // no video parameter
);
if (DISP_CHANGE_SUCCESSFUL != status) {
printf("ChangeDisplaySettingsEx returned %d", status);
return -__LINE__;
}
我还尝试了 SetDisplayConfig 函数:
SetDisplayConfig(0,NULL,0,NULL,SDC_TOPOLOGY_CLONE|SDC_APPLY);
SDC_TOPOLOGY_CLONE 只是克隆监视器,而 SDC_TOPOLOGY_EXTEND 将桌面扩展到第二个显示器。
任何建议,将不胜感激。