SetThreadDpiHostingBehavior 関数 (winuser.h)
スレッドの DPI_HOSTING_BEHAVIORを設定します。 この動作により、スレッド内に作成されたウィンドウで、別の DPI_AWARENESS_CONTEXTを持つ子ウィンドウをホストできます。
構文
DPI_HOSTING_BEHAVIOR SetThreadDpiHostingBehavior(
DPI_HOSTING_BEHAVIOR value
);
パラメーター
value
現在のスレッドの新しい DPI_HOSTING_BEHAVIOR 値。
戻り値
スレッドの前の DPI_HOSTING_BEHAVIOR 。 渡されたホスティング動作が無効な場合、スレッドは更新されず、戻り値は DPI_HOSTING_BEHAVIOR_INVALIDされます。 この値を使用すると、定義済みの値でオーバーライドした後、古い DPI_HOSTING_BEHAVIOR を復元できます。
注釈
DPI_HOSTING_BEHAVIOR を使用すると、コンテンツホスティング動作を混在させることができます。これにより、スレッド内に作成された親ウィンドウで、異なる DPI_AWARENESS_CONTEXT 値を持つ子ウィンドウをホストできます。 このプロパティは、混合ホスティング動作がアクティブな間に、このスレッド内に作成された新しいウィンドウにのみ影響します。 このホスティング動作を持つ親ウィンドウでは、子ウィンドウで混合ホスティング動作が有効になっているかどうかに関係なく、異なる DPI_AWARENESS_CONTEXT 値を持つ子ウィンドウをホストできます。
このホスティング動作では、モニターごとの DPI_AWARENESS_CONTEXT 値を持つウィンドウは、システムまたは認識されていない DPI_AWARENESS_CONTEXT 値を持つウィンドウまでホストできません。
予期しない結果を回避するには、スレッドの DPI_HOSTING_BEHAVIOR を変更して、それらの動作をサポートする必要がある新しいウィンドウを作成する場合にのみ、混合ホスティング動作をサポートする必要があります。 そのウィンドウが作成されたら、ホスティング動作を既定値に戻す必要があります。
この API は、スレッドの DPI_HOSTING_BEHAVIOR を既定値から変更するために使用されます。 これは、アプリで、モニターごとのコンテキストをサポートしていないプラグインとサードパーティのコンポーネントから子ウィンドウをホストする必要がある場合にのみ必要です。 これは、監視ごとの DPI_AWARENESS_CONTEXT 動作をサポートするように複雑なアプリケーションを更新する場合に発生する可能性が最も高くなります。
混合ホスティング動作を有効にした場合、スレッドの DPI_AWARENESS_CONTEXT がレガシ コンテンツと互換性を持つように自動的に調整されることはありません。 このようなコンテンツをホストするために新しいウィンドウを作成する前に、スレッドの認識コンテキストを手動で変更する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10バージョン 1803 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2016 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h |
Library | User32.lib |
[DLL] | User32.dll |