HwndSource クラス

定義

Win32 ウィンドウで Windows Presentation Foundation (WPF) コンテンツを表します。

public ref class HwndSource : System::Windows::PresentationSource, IDisposable, System::Windows::Interop::IKeyboardInputSink, System::Windows::Interop::IWin32Window
public class HwndSource : System.Windows.PresentationSource, IDisposable, System.Windows.Interop.IKeyboardInputSink, System.Windows.Interop.IWin32Window
type HwndSource = class
    inherit PresentationSource
    interface IDisposable
    interface IWin32Window
    interface IKeyboardInputSink
type HwndSource = class
    inherit PresentationSource
    interface IDisposable
    interface IKeyboardInputSink
    interface IWin32Window
Public Class HwndSource
Inherits PresentationSource
Implements IDisposable, IKeyboardInputSink, IWin32Window
継承
実装

注釈

重要

このクラスの多くのメンバーは、インターネット セキュリティ ゾーンでは使用できません。

HwndSource 、WPF コンテンツを含めることができる Win32 ウィンドウを実装します。 ウィンドウ内の WPF コンテンツは、配置、測定、およびレンダリングされます。と は対話形式で入力できます。 HwndSourceは特に Win32 と相互運用するように設計されているため、このクラスでは、いくつかの低レベルの Win32 機能が公開されます。 このクラスを使用して、次の操作を行うことができます。

  • ウィンドウ スタイル、ウィンドウ クラス スタイル、および拡張ウィンドウ スタイルを指定します。

  • ウィンドウ プロシージャをフックします。

  • ウィンドウ ハンドル (HWND) へのアクセスを提供します。

  • ウィンドウを破棄します。

クラスは HwndSource 一般的な相互運用性のために設計されており、マネージド HWND ラッパーとして設計されていません。 一般に、ウィンドウを操作するための管理メソッドや、その状態を検査するためのプロパティは提供されません。 代わりに、 クラスは HwndSource プロパティを介して Handle Win32 ウィンドウ ハンドル (HWND) へのアクセスを提供します。これは、ウィンドウを操作するために PInvoke 手法を使用して Win32 API に渡すことができます。

建設

HwndSource 多くの側面は、構築時にのみ指定できます。 を HwndSource作成するには、まず構造体を HwndSourceParameters 作成し、必要なパラメーターを設定します。 これらのパラメーターには、次のものが含まれます。

  • クラス、ウィンドウ、および拡張ウィンドウのスタイル。 ウィンドウの作成後にスタイルを変更するには、PInvoke を使用する必要があります。 ウィンドウの作成後にすべてのスタイルを変更できるわけではありません。 ウィンドウ スタイルを変更する前に、Win32 のドキュメントを参照してください。

  • ウィンドウの初期位置。

  • ウィンドウの初期サイズ。サイズが指定されているか、WPF コンテンツの決定されたサイズから決定する必要があるかが含まれます。

  • 親ウィンドウです。

  • HwndSourceHookウィンドウ プロシージャ チェーンに含める 。 構築時にフックを指定すると、ウィンドウのすべてのメッセージが受信されます。 を使用 AddHook すると、ウィンドウの作成後にフックを追加できます。

  • 透過性の設定。 WPF コンテンツのピクセルごとの透明度に従って、デスクトップ上の他のウィンドウとブレンドするように最上位ウィンドウを構成できます。 これを有効にするには、 の プロパティを UsesPerPixelOpacity に設定しますtrueHwndSourceParameters このプロパティは構築時にのみ指定でき、コンストラクターシグネチャを介 HwndSource(HwndSourceParameters) してのみ指定でき、いくつかの制限が課されます。

構造体を設定したらHwndSourceParameters、 のHwndSourceコンストラクターにHwndSource(HwndSourceParameters)渡します。

オブジェクトの有効期間

HwndSourceは通常の共通言語ランタイム (CLR) オブジェクトであり、その有効期間はガベージ コレクターによって管理されます。 は HwndSource アンマネージド リソースを表すので、 HwndSource は を実装します IDisposable。 同期的に呼び出すと Dispose 、所有者スレッドから呼び出された場合、Win32 ウィンドウが直ちに破棄されます。 別のスレッドから呼び出された場合、Win32 ウィンドウは非同期的に破棄されます。 相互運用コードから明示的に呼び出すことは Dispose 、特定の相互運用シナリオで必要になる場合があります。

ウィンドウ プロシージャ

クラスは HwndSource 、独自のウィンドウ プロシージャを実装します。 このウィンドウ プロシージャは、レイアウト、レンダリング、入力に関連する重要なウィンドウ メッセージを処理するために使用されます。 ただし、ウィンドウ プロシージャを独自に使用することもできます。 プロパティを設定して構築中に独自のフックをHwndSourceParameters.HwndSourceHook指定することも、ウィンドウの作成後に と RemoveHook を使用AddHookしてフックを追加および削除することもできます。 フックは、組み込み処理の前にフックを実行できる、最後の先入れ先出し順によって呼び出されます。 実際のフックは弱い参照によって保持されます。 そのため、フック デリゲートの有効期間は必ず管理してください。

およびその他の相互運用クラスの詳細 HwndSource については、「 WPF と Win32 相互運用」を参照してください。

のコンストラクター HwndSource が、 CreateWindowEx などの Win32 関数のパラメーターに似たパラメーターを受け取る方法に注目してください。

スケール変換は、 の HwndSourceRootVisual適用しないでください。 については、「解説」を参照 RootVisualしてください。

コンストラクター

HwndSource(HwndSourceParameters)

初期設定を格納している構造体を使用して、HwndSource クラスの新しいインスタンスを初期化します。

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr)

クラス スタイル、スタイル、拡張スタイル、x-y 位置、幅、高さ、名前、および親ウィンドウを指定して、HwndSource クラスの新しいインスタンスを初期化します。

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr, Boolean)

指定したクラス スタイル、スタイル、拡張スタイル、x-y 位置、幅、高さ、名前、および親ウィンドウを使用し、さらに、ウィンドウでサイズが自動調整されるかどうかを指定して、HwndSource クラスの新しいインスタンスを初期化します。

HwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr)

クラス スタイル、スタイル、拡張スタイル、x-y 位置、名前、および親ウィンドウを指定して、HwndSource クラスの新しいインスタンスを初期化します。

プロパティ

AcquireHwndFocusInMenuMode

この HwndSource のウィンドウを含む WPF の Win32 フォーカスを取得するかどうかを決定する値を取得します。

ChildKeyboardInputSinks

登録された入力シンクのシーケンスを取得します。

CompositionTarget

ホストされたウィンドウのビジュアル マネージャーを取得します。

DefaultAcquireHwndFocusInMenuMode

AcquireHwndFocusInMenuMode の新しいインスタンスの既定の HwndSource の値を取得または設定します。

Dispatcher

この Dispatcher が関連付けられている DispatcherObject を取得します。

(継承元 DispatcherObject)
Handle

この HwndSource のウィンドウ ハンドルを取得します。

IsDisposed

この Dispose()HwndSource が呼び出されたかどうかを示す値を取得します。

KeyboardInputSiteCore

コンポーネントのコンテナーの IKeyboardInputSite インターフェイスへの参照を取得または設定します。

RestoreFocusMode

ウィンドウの RestoreFocusMode を取得します。

RootVisual

ウィンドウの RootVisual を取得または設定します。

SizeToContent

ウィンドウのサイズをコンテンツに合わせて調整するかどうか、およびどのように調整するかを取得または設定します。

UsesPerPixelOpacity

ソース ウィンドウ コンテンツのピクセルごとの不透明度を使用するかどうかを示す値を取得します。

メソッド

AddHook(HwndSourceHook)

すべてのウィンドウ メッセージを受け取るイベント ハンドラーを追加します。

AddSource()

PresentationSource 派生クラスのインスタンスを既知のプレゼンテーション ソースのリストに追加します。

(継承元 PresentationSource)
CheckAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。

(継承元 DispatcherObject)
ClearContentRenderedListeners()

ContentRendered イベントのリスナーのリストを null に設定します。

(継承元 PresentationSource)
CreateHandleRef()

HwndSource のウィンドウ ハンドルを取得します。 ウィンドウ ハンドルは HandleRef 構造体の一部としてパッケージ化されます。

Dispose()

HwndSource によって使用されているすべてのマネージド リソースを解放し、Disposed イベントを発生させます。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
FromHwnd(IntPtr)

指定したウィンドウの HwndSource オブジェクトを返します。

GetCompositionTargetCore()

ウィンドウのビジュアル ターゲットを取得します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
HasFocusWithinCore()

シンクまたはその中に格納されているコンポーネントのいずれかにフォーカスがあるかどうかを示す値を取得します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
OnDpiChanged(HwndDpiChangedEventArgs)

ウィンドウの DPI が変更されるときに呼び出されます。

OnMnemonicCore(MSG, ModifierKeys)

このシンクのニーモニック (アクセス キー) のいずれかが起動されたときに呼び出されます。

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

格納されているコンポーネントの IKeyboardInputSink インターフェイスを登録します。

RemoveHook(HwndSourceHook)

AddHook(HwndSourceHook) によって追加されたイベント ハンドラーを削除します。

RemoveSource()

PresentationSource 派生クラスのインスタンスを既知のプレゼンテーション ソースのリストから削除します。

(継承元 PresentationSource)
RootChanged(Visual, Visual)

ルート Visual が変更されたことを示す通知を提供します。

(継承元 PresentationSource)
TabIntoCore(TraversalRequest)

フォーカスをシンクの最初のタブ位置または最後のタブ位置のいずれかに設定します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

キー押下メッセージのレベルでキーボード入力を処理します。

TranslateCharCore(MSG, ModifierKeys)

OnMnemonic(MSG, ModifierKeys) メソッドの呼び出し前に、WM_CHAR、WM_SYSCHAR、WM_DEADCHAR、および WM_SYSDEADCHAR 入力メッセージを処理します。

VerifyAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。

(継承元 DispatcherObject)

イベント

AutoResized

レイアウトによって HwndSource のサイズが自動調整されると発生します。

ContentRendered

コンテンツがレンダリングされ、ユーザー操作を受け入れる準備が整ったときに発生します。

(継承元 PresentationSource)
Disposed

このオブジェクトで Dispose() メソッドが呼び出されると発生します。

DpiChanged

この Hwnd のモニターの DPI が変更された場合、または Hwnd がさまざまな DPI のモニターに移動された場合に発生します。

SizeToContentChanged

SizeToContent プロパティの値が変化したときに発生します。

明示的なインターフェイスの実装

IKeyboardInputSink.HasFocusWithin()

このメンバーの詳細については、「IList.Remove(Object)」をご覧ください。

IKeyboardInputSink.KeyboardInputSite

このメンバーの詳細については、「KeyboardInputSite」をご覧ください。

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

このメンバーの詳細については、「OnMnemonic(MSG, ModifierKeys)」をご覧ください。

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

このメンバーの詳細については、「RegisterKeyboardInputSink(IKeyboardInputSink)」をご覧ください。

IKeyboardInputSink.TabInto(TraversalRequest)

このメンバーの詳細については、「TabInto(TraversalRequest)」をご覧ください。

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

このメンバーの詳細については、「TranslateAccelerator(MSG, ModifierKeys)」をご覧ください。

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

このメンバーの詳細については、「TranslateChar(MSG, ModifierKeys)」をご覧ください。

適用対象

こちらもご覧ください