Размер экрана
Автор(ы): kenai, OlegGG, trainer
Исходная ссылка: - - -
Как узнать высоту и ширину экрана в пикселях?
Для этого можно воспользоваться глобальным объектом Screen, при этом:
Screen->Width - ширина;
Screen->Height - высота.
Как сменить разрешение экрана?
DEVMODE dm;
dm.dmSize = sizeof(DEVMODE);
int index = 0;
while (EnumDisplaySettings(NULL, index, &dm))
{
if (dm.dmPelsWidth == 800 && dm.dmPelsHeight == 600)
{
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++;
}
Как узнать размер рабочей области экрана?
Прим.: Рабочая область - часть экрана, не закрываемая панелью задач
TRect rect;
if( SystemParametersInfo(SPI_GETWORKAREA,0,&rect,0) ) {
// получили размер рабочей области
ShowMessage("WorkArea size is "+AnsiString(rect.Width())+"x"+AnsiString(rect.Height()));
} else {
// не удалось получить размер рабочей области
ShowMessage("GetWorkArea failed");
}
|