DPI_AWARENESS列挙 (windef.h)
スレッド、プロセス、またはウィンドウのドット/インチ (dpi) 設定を識別します。
構文
typedef enum DPI_AWARENESS {
DPI_AWARENESS_INVALID = -1,
DPI_AWARENESS_UNAWARE = 0,
DPI_AWARENESS_SYSTEM_AWARE = 1,
DPI_AWARENESS_PER_MONITOR_AWARE = 2
} ;
定数
DPI_AWARENESS_INVALID 値: -1 DPI 認識が無効です。 これは無効な DPI 認識値です。 |
DPI_AWARENESS_UNAWARE 値: 0 DPI を認識する必要があります。 このプロセスは DPI の変更に対してスケーリングされず、常にスケール ファクターが 100% (96 DPI) であると想定されます。 他の DPI 設定では、システムによって自動的にスケーリングされます。 |
DPI_AWARENESS_SYSTEM_AWARE 値: 1 システム DPI 対応。 このプロセスでは、DPI の変更に対してスケーリングされません。 DPI に対して 1 回クエリを実行し、その値をプロセスの有効期間にわたって使用します。 DPI が変更された場合、プロセスは新しい DPI 値に調整されません。 システム値から DPI が変更されると、システムによって自動的にスケールアップまたはスケールダウンされます。 |
DPI_AWARENESS_PER_MONITOR_AWARE 値: 2 モニターごとの DPI 対応。 このプロセスでは、DPI の作成時に DPI がチェックされ、DPI が変更されるたびにスケール ファクターが調整されます。 これらのプロセスは、システムによって自動的にスケーリングされません。 |
注釈
以前のバージョンの Windows では、DPI 値はアプリケーション全体に対して 1 回だけ設定されていました。 これらのアプリの場合、 PROCESS_DPI_AWARENESS の種類によって、アプリケーション全体の DPI 認識の種類が決まります。 現在、DPI 認識は個々のスレッド、ウィンドウ、またはプロセス レベルで定義され、 DPI_AWARENESS の種類によって示されます。 プロセス レベルからスレッド レベルにフォーカスが移りますが、さまざまな種類の DPI 認識は同じです。認識、システム対応、モニターごとの認識。 さまざまな DPI の種類の詳細な説明といくつかの例については、「 PROCESS_DPI_AWARENESS」を参照してください。
以前の推奨事項は、PROCESS_DPI_AWARENESSで説明されているように、 dpiAware の設定を使用して、アプリケーション マニフェストで DPI 認識レベル を定義することです。 DPI 認識がアプリケーション全体ではなくスレッドとウィンドウに関連付けられたので、新しいウィンドウ設定がアプリ マニフェストに追加されます。 この設定は dpiAwareness であり、両方がマニフェストに存在する場合は dpiAware 設定をオーバーライドします。 マニフェストを使用することをお勧めしますが、 SetThreadDpiAwarenessContext を使用してアプリの実行中に DPI 認識を変更できるようになりました。
アプリケーションにDPI_AWARENESS_PER_MONITOR_AWARE ウィンドウがある場合は、 WM_DPICHANGEDメッセージに 応答して DPI を追跡する必要があることに注意してください。
例
このスニペットでは、アプリケーション マニフェストで DPI_AWARENESS_SYSTEM_AWARE の値を設定する方法を示します。
<dpiAwareness>System</dpiAwareness>
このスニペットでは、アプリケーション マニフェストで DPI_AWARENESS_PER_MONITOR_AWARE の値を設定する方法を示します。
<dpiAwareness>PerMonitor</dpiAwareness>
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | サポートなし |
Header | windef.h |