Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

C++

Başlatan es-es, 27 Kasım 2003, 23:03:54

es-es

Arkadaşlar C++ ile ekran çözünürlüğünü nasıl değiştirebiliriz, bilgisi olan varmı?

Analyzer

Selam,

Hangi işletim sistemi için istiyorsun? Windows/Linux/Dos ? Hangi compiler'i kullanıyorsun? İşletim

sistemin nedir? İstediğin refresh rate nedir?

Analyzer.
Üşeniyorum, öyleyse yarın!

es-es

Derleyicim Borland C++ Builder 6.0, winXP kullanıyorum,  tahminim bu işlem API lere yazılarak yapılıyor. galiba onun

için işletim sistemini soruyorsun. 800*600 cözünürlüğü 1024*768 yapmak istiyorum win.98 ve XP de çalışabilmeli.

ise

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   DEVMODE DevMode;
   int     rc,

xmode;


   if (ListBox1->ItemIndex == -1) return;


   // ---- Get Device Mode data
   EnumDisplaySettings(NULL, ListBox1->ItemIndex,

&DevMode);

   // ---- First Test resolution selected
   rc = ChangeDisplaySettings(&DevMode, CDS_TEST);
   switch (rc) {
       case

DISP_CHANGE_SUCCESSFUL:
           ChangeDisplaySettings(&DevMode, 0);
           Caption =    "The settings change was successful.";
           break;
       case

DISP_CHANGE_RESTART:
           ChangeDisplaySettings(&DevMode, 0);
           Caption = "The computer must be restarted in order for the graphics mode to work.";
 

        break;
       case DISP_CHANGE_BADFLAGS:
           Caption = "An invalid set of flags was passed in.";
           break;
       case DISP_CHANGE_FAILED:
   

       Caption = "The display driver failed the specified graphics mode.";
           break;
       case DISP_CHANGE_BADMODE:
           Caption =  "The graphics mode is not

supported.";
       case DISP_CHANGE_NOTUPDATED:
           Caption = "Windows NT only: Unable to write settings to the registry.";
           break;
       

}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   DEVMODE DevMode;
   int     rc,

xmode;


   // ---- List display enmunerations until fault.
   rc = 1;
   xmode = 0;
   do  {
       rc = EnumDisplaySettings(NULL, xmode, &DevMode);
   

  if (rc != 0) {
           ListBox1->Items->Add (IntToStr(DevMode.dmPelsWidth)  + "X" +
                                 IntToStr(DevMode.dmPelsHeight) + "X" +
                   

             IntToStr(DevMode.dmDisplayFrequency) + "Hz " +
                                  IntToStr(DevMode.dmBitsPerPel) + "-Bit");
           }
       xmode++;
       } while (rc

!= 0);
}
//---------------------------------------------------------------------------

ise

95  98  me  2000  xp  için    Listbox ve buton koyman yeterli es es

Analyzer

Selam,

Ben şu componenti kullanıyorum, kullanımı kolay :

CPResolution v.1.0


http://www.torry.net/vcl/system/otherhardware/cpresolution.zip
Üşeniyorum, öyleyse yarın!

es-es

Teşekkürler arkadaşlar, Thief'in verdiği notlar çok iyi çalışıyor... :P

ise

yardımcı olabildiysek ne mutlu