Win32 API 日本語リファレンス
ホームUI.HiDpi › DPI_HOSTING_BEHAVIOR

DPI_HOSTING_BEHAVIOR

列挙型
基底型i4

メンバー 3

名前10進16進説明
DPI_HOSTING_BEHAVIOR_INVALID-10xFFFFFFFF無効な DPI ホスティング動作です。通常これは、直前の SetThreadDpiHostingBehavior の呼び出しで無効なパラメーターが使用された場合に発生します。
DPI_HOSTING_BEHAVIOR_DEFAULT00x0既定の DPI ホスティング動作です。関連付けられたウィンドウは通常どおりに動作し、異なる DPI_AWARENESS_CONTEXT を持つ子ウィンドウの作成や親の変更を行うことはできません。
DPI_HOSTING_BEHAVIOR_MIXED10x1混在 DPI ホスティング動作です。これにより、異なる DPI_AWARENESS_CONTEXT を持つ子ウィンドウの作成と親の変更が可能になります。これらの子ウィンドウは OS によって個別にスケーリングされます。

公式ドキュメント

ウィンドウの DPI ホスティング動作を識別します。この動作により、スレッド内で作成されたウィンドウは、異なる DPI_AWARENESS_CONTEXT を持つ子ウィンドウをホストできます

解説(Remarks)

DPI_HOSTING_BEHAVIOR は混在コンテンツのホスティング動作を有効にします。これにより、スレッド内で作成された親ウィンドウが、異なる DPI_AWARENESS_CONTEXT 値を持つ子ウィンドウをホストできるようになります。このプロパティは、混在ホスティング動作が有効な間にこのスレッド内で新しく作成されるウィンドウにのみ影響します。このホスティング動作を持つ親ウィンドウは、子ウィンドウ側で混在ホスティング動作が有効になっているかどうかにかかわらず、異なる DPI_AWARENESS_CONTEXT 値を持つ子ウィンドウをホストできます。

このホスティング動作では、モニターごとの DPI_AWARENESS_CONTEXT 値を持つウィンドウを、システムまたは非対応 (unaware) の DPI_AWARENESS_CONTEXT 値を持つウィンドウがホストすることはできません。

予期しない結果を避けるため、スレッドの DPI_HOSTING_BEHAVIOR を混在ホスティング動作に変更するのは、その動作を必要とする新しいウィンドウを作成するときだけにしてください。そのウィンドウを作成したら、ホスティング動作は既定値に戻す必要があります。

混在ホスティング動作を有効にしても、スレッドの DPI_AWARENESS_CONTEXT がレガシコンテンツと互換になるように自動的に調整されるわけではありません。そのようなコンテンツをホストする新しいウィンドウを作成する前に、スレッドの認識コンテキストを手動で変更する必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum DPI_HOSTING_BEHAVIOR : int {
    DPI_HOSTING_BEHAVIOR_INVALID = -1,
    DPI_HOSTING_BEHAVIOR_DEFAULT = 0,
    DPI_HOSTING_BEHAVIOR_MIXED = 1
} DPI_HOSTING_BEHAVIOR;
public enum DPI_HOSTING_BEHAVIOR : int
{
    DPI_HOSTING_BEHAVIOR_INVALID = -1,
    DPI_HOSTING_BEHAVIOR_DEFAULT = 0,
    DPI_HOSTING_BEHAVIOR_MIXED = 1,
}
Public Enum DPI_HOSTING_BEHAVIOR As Integer
    DPI_HOSTING_BEHAVIOR_INVALID = -1
    DPI_HOSTING_BEHAVIOR_DEFAULT = 0
    DPI_HOSTING_BEHAVIOR_MIXED = 1
End Enum
import enum

class DPI_HOSTING_BEHAVIOR(enum.IntEnum):
    DPI_HOSTING_BEHAVIOR_INVALID = -1
    DPI_HOSTING_BEHAVIOR_DEFAULT = 0
    DPI_HOSTING_BEHAVIOR_MIXED = 1
// DPI_HOSTING_BEHAVIOR
pub const DPI_HOSTING_BEHAVIOR_INVALID: i32 = -1;
pub const DPI_HOSTING_BEHAVIOR_DEFAULT: i32 = 0;
pub const DPI_HOSTING_BEHAVIOR_MIXED: i32 = 1;
// DPI_HOSTING_BEHAVIOR
const (
	DPI_HOSTING_BEHAVIOR_INVALID int32 = -1
	DPI_HOSTING_BEHAVIOR_DEFAULT int32 = 0
	DPI_HOSTING_BEHAVIOR_MIXED int32 = 1
)
const
  DPI_HOSTING_BEHAVIOR_INVALID = -1;
  DPI_HOSTING_BEHAVIOR_DEFAULT = 0;
  DPI_HOSTING_BEHAVIOR_MIXED = 1;
// DPI_HOSTING_BEHAVIOR
pub const DPI_HOSTING_BEHAVIOR_INVALID: i32 = -1;
pub const DPI_HOSTING_BEHAVIOR_DEFAULT: i32 = 0;
pub const DPI_HOSTING_BEHAVIOR_MIXED: i32 = 1;
const
  DPI_HOSTING_BEHAVIOR_INVALID* = -1
  DPI_HOSTING_BEHAVIOR_DEFAULT* = 0
  DPI_HOSTING_BEHAVIOR_MIXED* = 1
enum DPI_HOSTING_BEHAVIOR : int {
    DPI_HOSTING_BEHAVIOR_INVALID = -1,
    DPI_HOSTING_BEHAVIOR_DEFAULT = 0,
    DPI_HOSTING_BEHAVIOR_MIXED = 1,
}
#define global DPI_HOSTING_BEHAVIOR_INVALID 0xFFFFFFFF
#define global DPI_HOSTING_BEHAVIOR_DEFAULT 0x0
#define global DPI_HOSTING_BEHAVIOR_MIXED   0x1