ChangeDisplaySettingsEx関数を使用して、デスクトップを2台のモニターに拡大しようとしています。デスクトップの解像度を1920x1080の解像度ではなく3840x1080にしたい。私は次のことを試しました:
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はデスクトップを2番目のディスプレイに拡張します。
任意の提案をいただければ幸いです。