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

こちらもご覧ください

PROCESS_DPI_AWARENESS

SetThreadDpiAwarenessContext