Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Разрешение экрана


Автор: Lepricon 11.1.2003, 09:01
Как в программе получить текущее разрешение экрана (не окна), какие функции есть для этого в WinAPI или Visual С++?

Автор: Vaulter 11.1.2003, 19:36
GetDeviceCaps(hdc,HORZRES);
GetDeviceCaps(hdc,VERTRES);
или попробуй проще
GetDeviceCaps(0,HORZRES);
GetDeviceCaps(0,VERTRES);

Автор: HexoGenus 14.1.2003, 06:16
Цитата(vaulter @ 11.1.2003, 11:36)
GetDeviceCaps(hdc,HORZRES);
GetDeviceCaps(hdc,VERTRES);
или попробуй проще
GetDeviceCaps(0,HORZRES);
GetDeviceCaps(0,VERTRES);

Ну не знаю что проще но все таки для разнообразия
Считывание размеров экрана
int screenW=GetSystemMetrics(SM_CXSCREEN); // Получить ширину экрана
int screenH=GetSystemMetrics(SM_CYSCREEN); // Получить высоту экрана

Автор: Klin 14.1.2003, 18:33
Код
HDC hDCScreen = GetDC(NULL);
 int horres=GetDeviceCaps(hDCScreen,HORZRES);
 int vertres=GetDeviceCaps(hDCScreen,VERTRES);
 int freq=GetDeviceCaps(hDCScreen,VREFRESH);
 ReleaseDC(NULL, hDCScreen);
Edit1->Text =  horres;
Edit2->Text =  vertres;

Я думаю переведёш с Билдера на Визуал.

Автор: Lepricon 15.1.2003, 09:19
Всем огромное СПАСИБО :-)))

Автор: Klin 15.1.2003, 19:23
Хотя сглупил, можно легче.
Код
Edit1->Text=Screen->Heigth;
Edit2->Text=Screen->Width;

Автор: bercut 16.1.2003, 17:27
Этот код получает и устанавливает разрешение экрана, а также кол-во цветов:

DEVMODE q;
for(int i=0;i<20;i++)
{
 if(EnumDisplaySettings(NULL,i,&q))
 {
  if(q.dmPelsWidth==800 && q.dmPelsHeight==600 && q.dmBitsPerPel==32)
  {
   EnumDisplaySettings(NULL,i,&q);
   ChangeDisplaySettings(&q,0);
  }
 }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)