什么是Windows API更改屏幕刷新率?

问题描述:

有人可以指定Windows API,需要使用它才能以编程方式更改屏幕刷新率?什么是Windows API更改屏幕刷新率?

如前文所述,您可以使用ChangeDisplaySettings。但是您应该使用EnumDisplaySettings来获取(颜色部分,宽度,高度,模式和频率)的有效组合的列表。

示例代码(在Delphi,但翻译应该是微不足道的)

得到有效的显示模式

i := 0; 
while EnumDisplaySettings(nil, i, dm) do begin 
    Memo1.Lines.Add(Format('Color Depth: %d', [dm.dmBitsPerPel])); 
    Memo1.Lines.Add(Format('Resolution: %d, %d', [dm.dmPelsWidth, dm.dmPelsHeight])); 
    Memo1.Lines.Add(Format('Display mode: %d', [dm.dmDisplayFlags])); 
    Memo1.Lines.Add(Format('Frequency: %d', [dm.dmDisplayFrequency])); 
    Inc(i); 
end; 

设置显示模式

// In this case i is an index in the list of valid display modes. 
if EnumDisplaySettings(nil, i, dm) then begin 
    // Sanity check! 
    if ChangeDisplaySettings(dm, CDS_TEST) = 0) then 
    ChangeDisplaySettings(dm, 0); // Use CDS_UPDATEREGISTRY if this is the new default mode. 
end; 

这是选择很重要一个有效的组合!

+0

德尔福是我的最爱之一:) – ArielBH 2008-09-28 19:50:23