Параметры монитора
Изменить частоту, разрешение получается без проблем, но вот восстановить как?
Слышал про GetDeviceCaps(), но что-то с этой функцией разобраться немогу.
Меняю вот таким образом:
DEVMODE dm;
ZeroMemory(&dm,sizeof(DEVMODE));
dm.dmSize=sizeof(DEVMODE);
dm.dmBitsPerPel=32;
dm.dmPelsWidth=1152;
dm.dmPelsHeight=864;
dm.dmDisplayFrequency=100;
dm.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT|DM_DISPLAYFREQUENCY;
ChangeDisplaySettings(&dm,0);
Получить текущие настройки можно через EnumDisplaySettings, сохранить (где угодно). Восстановить через ChangeDisplaySettings. :-)))) несложно конечно, но если возникнут затруднения могу примерчик набросать :-)))
EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &state_dm);
DEVMODE dm;
ZeroMemory(&dm,sizeof(DEVMODE));
dm.dmSize=sizeof(DEVMODE);
dm.dmBitsPerPel=32;
dm.dmPelsWidth=1024;
dm.dmPelsHeight=768;
dm.dmDisplayFrequency=100;
dm.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT|DM_DISPLAYFREQUENCY;
ChangeDisplaySettings(&dm,0);
Sleep(5000);
ChangeDisplaySettings(&state_dm, 0);
Вот так нарисовал, через 5 секунд все восстановилось! Спасибо огромное!!
А с точки зрания программирования правильно создавать state_dm?
Или лучше видоизменить что-то?
Все сделано правильно, текущие настройки (state_dm) менять не надо, иначе они перестанут быть ТЕКУЩИМИ настройками :-)))
Раз все правильно, то... "неподведем гномиков!"
DirectX рулит. Он сам всё восстанавливает :)