屏幕设置为1024x768。
我的程序合适在800*600下运行。
我想在程序运行时将屏幕显示分辨率改为:800x600。
关闭后又恢复到1024x768。还有一点是:如果将我的程序最小化后,我也想将屏幕恢复为
1024x768,还原后又改为:800x600。。如何实现呢?

解决方案 »

  1.   

    procedure SetRes(XRes, YRes: DWord); 
    varlpDevMode : TDeviceMode;beginEnumDisplaySettings(nil, 0, lpDevMode);lpDevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT;lpDevMode.dmPelsWidth:=XRes;lpDevMode.dmPelsHeight:=YRes;ChangeDisplaySettings(lpDevMode, 0);end;
     
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       mDevMode:DEVMODE;
       position:integer;
    begin
       position:=TrackBar1.Position;
       //得到当前分辨率
       if EnumDisplaySettings(nil,position,mDevMode)<>false then
       begin
          with mDevMode do
          begin
                    dmPelsWidth:=800;
                    dmPelsHeight:=600;
          end;
          //改变分辨率标志
          dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT;
          end;
          //改变分辨率
          ChangeDisplaySettings(mDevMode,0);
       end;
    end;
      

  3.   

    m:DEVMODE;
      m.dmPelsWidth:=800;
      m.dmPelsHeight:=600;
          ChangeDisplaySettings(m,0);
      

  4.   

    都说完了具体的你可以看看DEVMODE的帮助