设置多个屏幕分辨率
设置双屏显示器的分辨率:
//传入参数为设置第几个屏幕
function TFormMain.ChangeResolution(nNum: Integer): Boolean;
var
X, Y, Frequency: Cardinal;
lpDevMode: TDeviceMode;
lpDisDev : TDisplayDevice;
DevNum: Integer;
begin
result := True;
DevNum := 0;
ZeroMemory(@lpDisDev, SizeOf(TDisplayDevice));
lpDisDev.cb := SizeOf(TDisplayDevice);
while EnumDisplayDevices(nil, DevNum, lpDisDev, 0) do
begin
if lpDisDev.DeviceName = ('\\.\DISPLAY' + IntToStr(nNum)) then
begin
ZeroMemory(@lpDevMode,Sizeof(TDeviceMode));
lpDevMode.dmSize := Sizeof(TDeviceMode);
result := EnumDisplaySettings(lpDisDev.DeviceName, 0, lpDevMode);
if result then
begin
X := lpDevMode.dmPelsWidth;
Y := lpDevMode.dmPelsHeight;
Frequency := 60;
X := 1024;
Y := 768;
lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;
lpDevMode.dmPelsWidth := X;
lpDevMode.dmPelsHeight := Y;
lpDevMode.dmDisplayFrequency := Frequency;
result := (ChangeDisplaySettingsEx(lpDisDev.DeviceName, lpDevMode, 0, 0, nil) =
DISP_CHANGE_SUCCESSFUL);
end;
end;
Inc(DevNum);
end;
end;