3 Stimmen

Was ist die Windows-API zum Ändern der Bildwiederholfrequenz?

Kann jemand die Windows-API angeben, die man verwenden muss, um die Bildwiederholfrequenz programmatisch ändern zu können?

5voto

Toon Krijthe Punkte 51819

Können Sie ChangeDisplaySettings wie zuvor beschrieben verwenden. Sie sollten jedoch EnumDisplaySettings verwenden, um eine Liste der gültigen Kombinationen von (Farbabstufung, Breite, Höhe, Modus und Häufigkeit) zu erhalten.

Beispielcode (in Delphi, aber die Übersetzung sollte trivial sein)

Gültige Anzeigemodi abrufen

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;

Anzeigemodus einstellen

// 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;

Es ist sehr wichtig, eine gültige Kombination zu wählen!

3voto

Ólafur Waage Punkte 66497

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X