High-Level モニター構成関数の使用

物理モニターの列挙

EnumDisplayMonitorsMonitorFromWindow など、表示デバイスを列挙する関数がいくつかあります。 これらの関数は、Windows GDI ドキュメントの「 複数のディスプレイ モニター」のトピックに記載されています。 これらの関数は HMONITOR ハンドルを 返します。 ただし、名前に関係なく、 HMONITOR ハンドルは複数の物理モニターに関連付けることができます。 モニターで設定を構成するには、 GetPhysicalMonitorsFromHMONITOR を呼び出して、アプリケーションが物理モニターに対する一意のハンドルを取得する必要があります。

アプリケーションで Direct3D を使用している場合は、 GetPhysicalMonitorsFromIDirect3DDevice9 を呼び出すことで、Direct3D デバイスからモニター ハンドルを取得できます。

サポートされている関数

モニターでは、すべてのモニター構成機能がサポートされていない場合があります。 モニターでサポートされている関数を確認するには、 GetMonitorCapabilities を呼び出します。

継続的モニターの設定

継続的モニターの設定は、最小値と最大値の範囲を指定できる設定です。 高レベルのモニター構成関数のほとんどは、継続的なモニター設定を制御します。 たとえば、明るさとコントラストは継続的な設定です。

継続的モニターの設定には、実際の単位が定義されていません。 単位は任意であり、製造元によって異なる場合があります。 たとえば、2 つのモニターの明るさの値が同じである場合、1 つのモニターが他のモニターよりもはるかに明るく見える場合があります。 通常、アプリケーションはスライダー コントロールまたはアップダウン コントロールをユーザーに表示します。 その後、ユーザーは、最高の主観的な品質を与えるために設定を調整することができます。

モニターの状態の変更

モニターは、次のようなさまざまな理由で状態を変更できます。

  • ユーザーは、モニターのフロント パネル コントロールを使用して設定を変更します。
  • ユーザーは、モニターの画面解像度、リフレッシュ レート、またはビット深度を変更します。
  • アプリケーションは、低レベルのモニター関数を使用して、高レベルの関数からアクセスできない設定を変更します。
  • アプリケーションは RestoreMonitorFactoryColorDefaults または RestoreMonitorFactoryDefaults を呼び出します。

これらのイベントはすべて、モニターの設定を変更できます。 また、設定の最小値と最大値を変更することもできます。

モニター設定間の依存関係

色温度を変更すると、現在のドライブとゲインの設定が変更される可能性があり、逆も当てはまります。 これらは、高レベルのモニター構成機能の中で唯一の依存関係です。 その他の設定には、低レベルのモニター機能を介してのみアクセスできる場合があります。 これらの設定と高レベルの設定の間には依存関係がある可能性があります。 これらの依存関係はベンダー固有です。 アプリケーションでは、次のいくつかの方法でこの問題を処理できます。

  • 高レベル関数のみを使用します。
  • 低レベル関数を呼び出した後、すべてのモニター設定の現在の値を取得します。 残念ながら、各設定を取得するには約 40 ミリ秒かかるため、この方法は遅くなる可能性があります。
  • 動作を理解している特定のモニター モデルでのみ、低レベルの関数を使用します。

無効なモニターの設定

アプリケーションは、高レベルのモニター機能を呼び出すことによってモニター設定を無効にすることはできません。 ただし、アプリケーションが低レベル関数を使用して、高レベル関数でサポートされていないモニター設定を変更すると、誤って設定が無効になる可能性があります。 また、ユーザーはフロント パネル コントロールを使用して設定を無効にすることもできます。 これらの動作はベンダー固有です。

モニター設定が無効になった場合、その設定を設定または取得する関数は失敗し、最後のエラー コードを ERROR_DISABLED_MONITOR_SETTING に設定します。 この場合、アプリケーションは次のいずれかを実行できます。

  • エラー メッセージを表示し、フロント パネル コントロールを使用して設定を調整することをユーザーに提案します。
  • RestoreMonitorFactoryDefaults 関数を呼び出します。 モニターにMC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS機能フラグがある場合、この関数は、高レベルのモニター機能でサポートされているすべてのモニター設定を有効にします。 残念ながら、この関数はモニター設定を出荷時の設定にリセットします。

モニター構成の使用