在修改屏幕分辨率时,怎样才能不改变其刷新频率。我每次用ChangeDisplaySettings函数修改分辨率后,刷新频率都会变小,导致屏幕闪烁。(或者谁知道怎么修改当前监视器的刷新频率(设为75赫兹)也可)

解决方案 »

  1.   

    更改显示器分辩、刷新率
    Procedure ChangeDisplay(width,height,Frequency:integer);
    var devmode:tDevicemode;
    begin
     if  EnumDisplaySettings(nil,0,devmode)  then
      begin
        devmode.dmfields:=dm_pelswidth  OR  dm_pelsheight OR dm_DisplayFrequency;
        if (devmode.dmDisplayFrequency<>frequency) or (screen.Width<>devmode.dmPelsWidth) then
        begin
        devmode.dmpelswidth:=width; {宽度}
        devmode.dmpelsheight:=height;{高度}
        devmode.dmDisplayFrequency:=frequency;{刷新率}  //-----------//你要的
        ChangeDisplaySettings(devmode,0); {更改设置}
        end;
      end;
    end;
      

  2.   

    同意
    更改显示器分辩、刷新率
    Procedure ChangeDisplay(width,height,Frequency:integer);
    var devmode:tDevicemode;
    begin
     if  EnumDisplaySettings(nil,0,devmode)  then
      begin
        devmode.dmfields:=dm_pelswidth  OR  dm_pelsheight OR dm_DisplayFrequency;
        if (devmode.dmDisplayFrequency<>frequency) or (screen.Width<>devmode.dmPelsWidth) then
        begin
        devmode.dmpelswidth:=width; {宽度}
        devmode.dmpelsheight:=height;{高度}
        devmode.dmDisplayFrequency:=frequency;{刷新率}  //-----------//你要的
        ChangeDisplaySettings(devmode,0); {更改设置}
        end;
      end;
    end;