この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語
このドキュメントはアーカイブされており、メンテナンスされていません。

HwndSource クラス

Win32 ウィンドウ内の Windows Presentation Foundation (WPF) コンテンツを提供します。

名前空間:  System.Windows.Interop
アセンブリ:  PresentationCore (PresentationCore.dll 内)

public class HwndSource : PresentationSource, IDisposable, 
	IWin32Window, IKeyboardInputSink

HwndSource 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドHwndSource(HwndSourceParameters)初期設定を格納している構造体を使用して、HwndSource クラスの新しいインスタンスを初期化します。
パブリック メソッドHwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr)クラス スタイル、スタイル、拡張スタイル、x-y 位置、名前、および親ウィンドウを指定して、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 クラスの新しいインスタンスを初期化します。
このページのトップへ

  名前説明
パブリック プロパティAcquireHwndFocusInMenuModeこの HwndSource のウィンドウを含む WPF の Win32 フォーカスを取得するかどうかを決定する値を取得します。
パブリック プロパティChildKeyboardInputSinks登録された入力シンクのシーケンスを取得します。
パブリック プロパティCompositionTargetホストされたウィンドウのビジュアル マネージャーを取得します。
パブリック プロパティ静的メンバーDefaultAcquireHwndFocusInMenuMode HwndSource の新しいインスタンスの既定の AcquireHwndFocusInMenuMode の値を取得または設定します。
パブリック プロパティDispatcherこの DispatcherObject が関連付けられている Dispatcher を取得します。 (DispatcherObject から継承されます。)
パブリック プロパティHandleこの HwndSource のウィンドウ ハンドルを取得します。
パブリック プロパティIsDisposedこの HwndSourceDispose が呼び出されたかどうかを示す値を取得します。 (PresentationSource.IsDisposed をオーバーライドします。)
プロテクト プロパティKeyboardInputSiteCoreコンポーネントのコンテナーの IKeyboardInputSite インターフェイスへの参照を取得または設定します。
パブリック プロパティRestoreFocusModeウィンドウの RestoreFocusMode を取得します。
パブリック プロパティRootVisualウィンドウの RootVisual を取得または設定します。 (PresentationSource.RootVisual をオーバーライドします。)
パブリック プロパティSizeToContentウィンドウのサイズをコンテンツに合わせて調整するかどうか、およびどのように調整するかを取得または設定します。
パブリック プロパティUsesPerPixelOpacityソース ウィンドウ コンテンツのピクセルごとの不透明度を使用するかどうかを示す値を取得します。
このページのトップへ

  名前説明
パブリック メソッドAddHookすべてのウィンドウ メッセージを受け取るイベント ハンドラーを追加します。
プロテクト メソッドAddSource PresentationSource 派生クラスのインスタンスを既知のプレゼンテーション ソースのリストに追加します。 (PresentationSource から継承されます。)
パブリック メソッドCheckAccess呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。 (DispatcherObject から継承されます。)
プロテクト メソッドClearContentRenderedListeners ContentRendered イベントのリスナーのリストを null に設定します。 (PresentationSource から継承されます。)
パブリック メソッドCreateHandleRef HwndSource のウィンドウ ハンドルを取得します。 ウィンドウ ハンドルは HandleRef 構造体の一部としてパッケージ化されます。
パブリック メソッドDispose HwndSource によって使用されているすべてのマネージ リソースを解放し、Disposed イベントを発生させます。
パブリック メソッドEquals(Object)指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドFinalizeオブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッド静的メンバーFromHwnd指定したウィンドウの HwndSource オブジェクトを返します。
プロテクト メソッドGetCompositionTargetCoreウィンドウのビジュアル ターゲットを取得します。 (PresentationSource.GetCompositionTargetCore() をオーバーライドします。)
パブリック メソッドGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
プロテクト メソッドHasFocusWithinCoreシンクまたはその中に格納されているコンポーネントのいずれかにフォーカスがあるかどうかを示す値を取得します。
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
プロテクト メソッドOnMnemonicCoreこのシンクのニーモニック (アクセス キー) のいずれかが起動されたときに呼び出されます。
プロテクト メソッドRegisterKeyboardInputSinkCore格納されているコンポーネントの IKeyboardInputSink インターフェイスを登録します。
パブリック メソッドRemoveHook AddHook によって追加されたイベント ハンドラーを削除します。
プロテクト メソッドRemoveSource PresentationSource 派生クラスのインスタンスを既知のプレゼンテーション ソースのリストから削除します。 (PresentationSource から継承されます。)
プロテクト メソッドRootChangedルート Visual が変更されたことを示す通知を提供します。 (PresentationSource から継承されます。)
プロテクト メソッドTabIntoCoreフォーカスをシンクの最初のタブ位置または最後のタブ位置のいずれかに設定します。
パブリック メソッドToString現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
プロテクト メソッドTranslateAcceleratorCoreキー押下メッセージのレベルでキーボード入力を処理します。
プロテクト メソッドTranslateCharCore OnMnemonic メソッドの呼び出し前に、WM_CHAR、WM_SYSCHAR、WM_DEADCHAR、および WM_SYSDEADCHAR 入力メッセージを処理します。
パブリック メソッドVerifyAccess呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。 (DispatcherObject から継承されます。)
このページのトップへ

  名前説明
パブリック イベントAutoResizedレイアウトによって HwndSource のサイズが自動調整されると発生します。
パブリック イベントContentRenderedコンテンツが描画され、ユーザー操作を受け付ける状態になったときに発生します。 (PresentationSource から継承されます。)
パブリック イベントDisposedこのオブジェクトで Dispose メソッドが呼び出されると発生します。
パブリック イベントSizeToContentChanged SizeToContent プロパティの値が変化したときに発生します。
このページのトップへ

  名前説明
明示的なインターフェイス実装プライベート メソッドIKeyboardInputSink.HasFocusWithinこのメンバーの説明については、IList.Remove のトピックを参照してください。
明示的なインターフェイス実装プライベート プロパティIKeyboardInputSink.KeyboardInputSiteこのメンバーの説明については、KeyboardInputSite のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドIKeyboardInputSink.OnMnemonicこのメンバーの説明については、OnMnemonic のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドIKeyboardInputSink.RegisterKeyboardInputSinkこのメンバーの説明については、RegisterKeyboardInputSink のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドIKeyboardInputSink.TabIntoこのメンバーの説明については、TabInto のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドIKeyboardInputSink.TranslateAcceleratorこのメンバーの説明については、TranslateAccelerator のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドIKeyboardInputSink.TranslateCharこのメンバーの説明については、TranslateChar のトピックを参照してください。
このページのトップへ

セキュリティに関するメモセキュリティに関するメモ

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

HwndSource は、WPF コンテンツを格納できる Win32 ウィンドウを実装します。 ウィンドウ内の WPF コンテンツは配置、測定、および描画され、対話的に入力の処理が行われます。 HwndSource は Win32 との相互運用を目的として特別に作られているため、このクラスは次のような低レベルの Win32 機能をいくつか公開します。このクラスを使用して、以下を実行できます。

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

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

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

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

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

構築

HwndSource の多くの側面は構築時にのみ指定できます。 HwndSource を作成するには、最初に HwndSourceParameters 構造を作成し、目的のパラメーターを設定します。 これらのパラメーターには、次のようなものがあります。

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

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

  • ウィンドウの初期サイズ (サイズを指定するか、WPF コンテンツの決定済みのサイズからサイズを決定するかなど)。

  • 親ウィンドウ。

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

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

HwndSourceParameters 構造体の設定が完了した後、それを HwndSourceHwndSource(HwndSourceParameters) コンストラクターに渡します。

オブジェクトの有効期間

HwndSource は標準の common language runtime (CLR) オブジェクトであるため、有効期間はガベージ コレクターによって管理されます。 HwndSource はアンマネージ リソースを表すため、HwndSourceIDisposable を実装します。 同期して Dispose を呼び出すと、所有者スレッドから呼び出された場合に、Win32 ウィンドウがすぐに破棄されます。 別のスレッドから呼び出された場合、Win32 ウィンドウは非同期的に破棄されます。 Dispose を明示的に相互運用コードから呼び出すことが、特定の相互運用シナリオでは必要です。

ウィンドウ プロシージャ

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

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

HwndSource のコンストラクターは、CreateWindowEx などの Win32 関数のパラメーターによく似たパラメーターを受け取ります。

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

.NET Framework

サポート対象: 4、3.5、3.0

.NET Framework Client Profile

サポート対象: 4、3.5 SP1

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
表示: