Last Updated 2003/10/30
Programming Tips Windows  索 引 
ディスプレイ設定
2003/10/30

ディスプレイの設定をするには EnumDisplaySettings と ChangeDisplaySettings を使用する.


  // 選択可能なディスプレイモードの諸元の取得
  DEVMODE dm;
  ZeroMemory(&dm, sizeof(DEVMODE));

  DWORD dwModeNum;
  for( dwModeNum = 0;
           EnumDisplaySettings(NULL, dwModeNum, &dm);
               dwModeNum++) {
      // dm に選択可能なディスプレイモードの諸元が格納されるので
      // 必要ならここで保存する。
  }


  // ディスプレイモードの変更
  DEVMODE dmNew;
  ZeroMemory(&dmNew, sizeof(DEVMODE));
  dmNew = x; // EnumDisplaySettings() で取得した諸元

  DOWRD dwFlags = 0;
  dwFlags = CDS_UPDATEREGISTRY;    // 動的に変更 レジストリ更新
  //dwFlags = CDS_TEST;    // 設定できるかどうかをシステムでテスト
  dmNew.dmBitsPerPel = 色数;
  dmNew.dmPelsWidth  = ;
  dmNew.dmPelsHeight = 高さ;
  dmNew.dmFields     = DM_BITSPERPEL |DM_PELSWIDTH | DM_PELSHEIGHT;

  ChangeDisplaySettings(&dmNew, dwFlags);
  /*
  ChangeDisplaySettings() の戻り値
  DISP_CHANGE_SUCCESSFUL 動的に変更に成功 レジストリに保存される
                         WM_DISPLAYCHANGEメッセージがアプリに送られる
  DISP_CHANGE_RESTART    動的に変更不可能 レジストリに保存される
                         モードを有効にするために再起動が必要
  DISP_CHANGE_BADFLAGS   無効なフラグがセットされた
  DISP_CHANGE_FAILED     変更に失敗
  */
  


参照
解像度の変更
前後のTips
ディスプレイ設定

DSS ProgrammingTipsCGI Ver2.02