Промяна на разширението на екрана

Всичко за програмирането.

Главно меню

Промяна на разширението на екрана

Как да промените програмно разделителната способност на екрана? Функцията на Windows APIEnumDisplaySettings за получаване на наличните режими и функциятаChangeDisplaySettings за промяна на разделителната способност на екрана са много полезни тук.

способност

За да разберем какви режими са достъпни за нас, трябва да поставим компонентаTListBox във формата, както иTButton, за да променим разширението на екрана.

Режими на екрана за четене

ФункциятаEnumDisplaySettings определя броя на възможните режими, като ги изброява, стига резултатът да е True.

Тази функция изисква променлива от типTDevMode, в която се поставят настройките.TDevMode има редица променливи, които са свързани с устройствата за показване. Тя включва разделителна способност на екрана в пиксели (dmPelsWidth и dmPelsHeight), дълбочина на цвета в битове на пиксел (dmBitsPerPel), честота на опресняване на екрана (dmDisplayFrequency) и други.

Кодът за четене на режимите на екрана и попълване на списъка с тези стойности.

Задаване на режими на екрана

След като разполагаме с всички възможни режими на разширяване на екрана, можем да използваме функциятаChangeDisplaySettings, за да променим режима на екрана. След това трябва да актуализирате системния регистър на Windows.

ФункциятаChangeDisplaySettings връща стойносттаLongInt. Тази стойност може да се сравни със списък от константи, за да се определи дали функцията е завършила успешно.

Забележка: Много драйвери няма да променят разделителната способност на екрана без рестартиране. ФункциятаSendMessage информира всички прозорци, че режимът на екрана е променен.

Контрол на промяната на размера на екрана

За откриване на промяна на режима на екранаможете да създадете прихващане на съобщенияWM_DISPLAYCHANGE.

екрана

За да направите това, добавете процедуратаWMDisplayChange към секциятаprivate на формуляра и напишете манипулатор: