C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Екран
Booster
  Отправлено: 26.08.2005, 22:25


Ученик-кочегар

Группа: Участник
Сообщений: 29



А можно програмно устанавливать разрешение экрана?
timson
Отправлено: 27.08.2005, 09:42


Станционный диспетчер

Группа: Участник
Сообщений: 82



да

CODE
DEVMODE dmScreenSettings;                      

memset(&dmScreenSettings, 0, sizeof(DEVMODE));          
dmScreenSettings.dmSize   = sizeof(DEVMODE);              
dmScreenSettings.dmPelsWidth    = ScreenWidth;
dmScreenSettings.dmPelsHeight   = ScreenHeight;
dmScreenSettings.dmBitsPerPel = ScreenColor;
dmScreenSettings.dmFields       = DM_PELSWIDTH | DM_PELSHEIGHT;


ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN); // тока тута флаг для полноэкрана, в хелпе посмари какой нуна.
Booster
Отправлено: 28.08.2005, 09:52


Ученик-кочегар

Группа: Участник
Сообщений: 29



Спасибо!
Grigoriy
Отправлено: 23.12.2005, 15:22


Мастер участка

Группа: Участник
Сообщений: 381



О, да, это я и хотел узнать.
Могу добавить, что для изменения частоты нужно добавить бит DM_DISPLAYFREQUENCY (это двадцать второй бит) во флаги dmScreenSettings.dmFields и задать частоту.
CODE

{
DEVMODE dmScreenSettings;

memset(&dmScreenSettings, 0, sizeof(DEVMODE));
dmScreenSettings.dmSize   = sizeof(DEVMODE);
dmScreenSettings.dmPelsWidth    = 800;//к примеру
dmScreenSettings.dmPelsHeight   = 600;//к примеру
dmScreenSettings.dmBitsPerPel = 24;//к примеру
dmScreenSettings.dmFields=DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYFREQUENCY;
dmScreenSettings.dmDisplayFrequency=100;//частота мигания экрана

ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN);
}


Отредактировано Grigoriy — 23/12/2005, 15:22

Вернуться в Вопросы программирования в C++Builder