Работа с экраном.
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Как узнать\изменить разрешение, задать полноэкранный режим?
Грязь под ногами бродяг, чище чем фальшь сладких слов. (с) Ария. "Улица роз".
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
ChangeDisplaySettings. Чтобы сделать полноэкранный режим, нужно просто окно растянуть на весь экран и сделать его системным модальным.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Хм... что то я не могу найти ChangeDisplaySettings.
Я поступил таким образом:
//Соответственно screen.Width и Screen.Height показывают разрешение экрана.
А где находятся ChangeDisplaySettings?
Я поступил таким образом:
Код: Выделить всё
//Для растягивания на весь экран формы
form1.Left:=0;
form1.top:=0;
Form1.width:=screen.Width;
Form1.height:=Screen.Height;
А где находятся ChangeDisplaySettings?
Грязь под ногами бродяг, чище чем фальшь сладких слов. (с) Ария. "Улица роз".
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
(C) MSND:
Иными словами делай include <windows.h> и используй.
P.S. Слово "фальшь" пишиться с мягким знаком в конце. Кипелов - Бог рока.
Код: Выделить всё
LONG ChangeDisplaySettings(
LPDEVMODE lpDevMode, // graphics mode
DWORD dwflags // graphics mode options
);
Windows NT/2000/XP: Included in Windows NT 3.5 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.
P.S. Слово "фальшь" пишиться с мягким знаком в конце. Кипелов - Бог рока.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Я извиняюсь, я только начинающий и не знаю что такое include.
Если можно, ответьте по подробнее. Это всё прописывается в форме или создаётся/берётся специальный файл...
Допустим имеется форма, что надо сделать/написать и где.
Если можно приведите пример.
Заранее благодарен за ответ.
Если можно, ответьте по подробнее. Это всё прописывается в форме или создаётся/берётся специальный файл...
Допустим имеется форма, что надо сделать/написать и где.
Если можно приведите пример.
Заранее благодарен за ответ.
Грязь под ногами бродяг, чище чем фальшь сладких слов. (с) Ария. "Улица роз".
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
В том файле, в котором будешь использовать данную функцию, напиши в самом начале:
Код: Выделить всё
include <windows.h>
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Спасибо Вам, Romeo за объяснения. После того как я разобрался, случайно нашёл интересную статью на эту тему. Там рассказывается про функцию Api: ChangeDisplaySettings. Я думаю, что это было бы многим полезно.
Интересная процедура, которая облегчит жизнь для тех кому надо поменять разрешение, но кто не может быстро разобраться:
Соответственно, осталось только вызвать эту процедуру и указать параметры, например:
SetScreen(16,800,600,80); {16 бит цвет, 800х600, 80Гц.};
Интересная процедура, которая облегчит жизнь для тех кому надо поменять разрешение, но кто не может быстро разобраться:
Код: Выделить всё
procedure SetScreen(BPP:byte;width,height,FR:integer);
var
D: TDevMode;
h: HWND;
begin
h:=0;
D.dmDeviceName:='DISPLAY';
D.dmBitsPerPel:=BPP;
D.dmDisplayFrequency:=FR;
D.dmPelsWidth:=Width;
D.dmPelsHeight:=Height;
D.dmFields:=DM_BITSPERPEL+DM_PELSWIDTH+DM_PELSHEIGHT+DM_DISPLAYFREQUENCY;
D.dmSize:=SizeOf(D);
if ChangeDisplaySettings(D,CDS_TEST)=DISP_CHANGE_SUCCESSFUL then
ChangeDisplaySettings(D,CDS_UPDATEREGISTRY)
else
MessageBox(h,'This mode is not supported by your video.',
'Failed to change mode', MB_ICONWarning);
end;
SetScreen(16,800,600,80); {16 бит цвет, 800х600, 80Гц.};
Грязь под ногами бродяг, чище чем фальшь сладких слов. (с) Ария. "Улица роз".