如何动态调整显示器的分辨率

解决方案 »

  1.   

    类 别:API
    Windows提供给我们两个API函数,可以动态调整显示器的分辨率,他们是EnumDisplaySettings() 和ChangeDisplaySettings(),下面这个例子就是了
    function DynamicResolution(X, Y: word): BOOL;
    var
      lpDevMode:
     TDeviceMode;
    begin
      Result := EnumDisplaySettings(nil, 0, lpDevMode);
      if Result then
      begin
        lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
        lpDevMode.dmPelsWidth := X;
        lpDevMode.dmPelsHeight := Y;
        Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
      end;
    end;
    procedure TForm1.Button1Click(Sender: Tobject);
    //在delphi5+windows2000上通过。
    begin
      if DynamicResolution(640, 480) then
        ShowMessage('Now is 640*480');
    end;
    procedure TForm1.Button2Click(Sender: Tobject);
    begin
      if DynamicResolution(800, 600) then
        ShowMessage('Now is 800*600');
    end;