65.9K
CodeProject 正在变化。 阅读更多。
Home

更改显示器的刷新率

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2000年5月23日

viewsIcon

119251

本文将向您展示如何将显示器的刷新率更改为控制面板中不可用的值。

更改你的显示器刷新率

我有一个较旧的索尼Trinitron显示器,大约是1992年制造的。它是一个20英寸的显示器,支持1024x768的分辨率。但是,每当我通过控制面板将其设置为该分辨率时,屏幕图像都会失真并严重弯曲。我发现,在一台NT机器上,只有当刷新率设置为70MHz时(800x600的分辨率需要72MHz,而且我甚至对640x480不感兴趣)才能正常工作。问题是我想使用的机器运行的是Win98,并且可用的刷新率只有65MHz、75MHz和85MHz。后来,我偶然发现了一个名为ChangeDisplaySettings()的Win32函数。下面的代码片段展示了如何使用它来更改刷新率

   DEVMODE devMode;
   ::ZeroMemory(&devMode, sizeof(devMode));
   devMode.dmDisplayFrequency = 70;
   devMode.dmFields = DM_DISPLAYFREQUENCY;
   devMode.dmSize = sizeof(devMode);
   ChangeDisplaySettings(&devMode, 0);

我创建了一个控制台应用程序,该应用程序在启动时启动并执行上述代码。最初,当Windows启动时,屏幕图像会失真,但一旦程序启动,我就获得了完美的1024x768分辨率。所以,在你想要丢弃但似乎无法调整的显示器之前,请尝试一下上面的代码。


© . All rights reserved.