カスタム解像度の設定は、Windows API によって公開されているChangeDisplaySettingsEx関数を使用して有効にすることができCDS_ENABLE_UNSAFE_MODES、4 番目のパラメーターとしてを渡しますdwflags。(無効にするには、 を使用しますCDS_DISABLE_UNSAFE_MODES。)
使用例を示すコードの抜粋:
DWORD deviceIndex = 0;
DISPLAY_DEVICE displayDevice = { 0 };
displayDevice.cb = sizeof(DISPLAY_DEVICE);
while (EnumDisplayDevices(NULL, deviceIndex, &displayDevice, 0)) {
deviceIndex++;
DEVMODE deviceMode = { 0 };
deviceMode.dmSize = sizeof(DEVMODE);
if (!EnumDisplaySettings(displayDevice.DeviceName, ENUM_CURRENT_SETTINGS, &deviceMode))
continue;
auto result = ChangeDisplaySettingsEx(displayDevice.DeviceName, &deviceMode, NULL, CDS_ENABLE_UNSAFE_MODES, NULL);
if (result != DISP_CHANGE_SUCCESSFUL) {
// Handle failure here...
}
}
これにより、すべてのディスプレイ デバイスで安全でないグラフィック モードが有効になることに注意してください。