解像度の変更

解決


みゅ  2006-06-07 06:11:33  No: 22078

おせわになります。

当方XP&D7を利用していまして、今回解像度の変更を行ってみたいのですが
シングルモニター時は ChangeDisplaySettings を使い変更できるのですが

マルチモニターで、片側だけの解像度を変えたい場合は
どのように行えばいいでしょうか?

また、電源を切ったり、バックライトを切ったり等もできるのでしょうか?

すいませんが、ご指導おねがいいたします。


えーとね  2006-06-07 18:44:56  No: 22079

> マルチモニターで、片側だけの解像度を変えたい場合
動作未確認ですが、以下でどうでしょう。

var
  DevNum: DWORD;
  Display: TDisplayDevice;
  Flags, Flags2: DWORD;
  DevMode: TDeviceMode;

Const
  ENUM_CURRENT_SETTINGS: DWORD = $FFFFFFFF; // High(DWORD) - 1
  ENUM_REGISTRY_SETTINGS: DWORD = $FFFFFFFE; // High(DWORD) - 2
  DISP_CHANGE_SUCCESSFUL = 0;
  DISP_CHANGE_RESTART = 1;
  DISP_CHANGE_FAILED = -1;
  DISP_CHANGE_BADMODE = -2;
  DISP_CHANGE_NOTUPDATED = -3;
  DISP_CHANGE_BADFLAGS = -4;
  DISP_CHANGE_BADPARAM = -5;
begin
  DevNum:= 1; //セカンド・ディスプレイ
  Display.cb := sizeof(Display);
  Flags := 0;
  EnumDisplayDevices(nil, DevNum, Display , Flags);

  EnumDisplaySettings(Display.DeviceName, ENUM_CURRENT_SETTINGS, DevMode);

  with DevMode do
  begin
    dmPelsWidth := 800;
    dmPelsHeight := 600;
  end;

  Flags2 := 0;
  if ChangeDisplaySettingsEx(Display.DeviceName, DevMode, 0, Flags2, 0) = DISP_CHANGE_SUCCESSFUL then
    showMessage('Success');
end;


みゅ  2006-06-09 14:45:47  No: 22080

えーとね様、無事できました!!

デュアルディスプレー環境が使いにくくて
あまり使っていなかったのですが、おかげさまで
ガンガン活用できます!!

とても感謝です!!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加