Учись программированию на C++ Builder бесплатно!

Упрощенный вариант:

DEVMODE dm;
dm.dmSize = sizeof(DEVMODE);
ShowMessage(dm.dmSize);
dm.dmPelsWidth = 1024;
dm.dmPelsHeight = 768;
dm.dmFields = DM_PELSWIDTH |DM_PELSHEIGHT;
ChangeDisplaySettings(&dm, CDS_UPDATEREGISTRY);

Если упрощённый вариант не работает, то можно использовать расширенный, который поддерживает некоторые полезные функции проверки на доступность изменения размера экрана монитора.

Расширенный вариант:

DEVMODE dm;
dm.dmSize = sizeof(DEVMODE);
int index = 0;
while (EnumDisplaySettings(NULL, index, &dm))
{
if (dm.dmPelsWidth == 1024 && dm.dmPelsHeight == 768)
{
dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
LONG result = ChangeDisplaySettings(&dm, CDS_TEST);
if (result == DISP_CHANGE_SUCCESSFUL)
{
ChangeDisplaySettings(&dm, 0);
break;
}
else if (result == DISP_CHANGE_RESTART)
{
ShowMessage("Требуется перезагрузка");
break;
}
else
{
ShowMessage("Установка не поддерживается монитором");
break;
}
}
index++;
}

В обоих случаях расширение экрана изменится на 1024x768.


Поиск по сайту