Размер экрана

Как узнать высоту и ширину экрана в пикселях?
Для этого можно воспользоваться глобальным объектом 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");
}
 
« Предыдущая статья   Следующая статья »