HwndSource HwndSource HwndSource HwndSource Class

定義

Win32 ウィンドウで Windows Presentation Foundation (WPF) コンテンツを表します。Presents Windows Presentation Foundation (WPF) content in a Win32 window.

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
Public Class HwndSource
Inherits PresentationSource
Implements IDisposable, IKeyboardInputSink, IWin32Window
継承
実装

注釈

重要

このクラスの多くのメンバーは、インターネットセキュリティゾーンでは使用できません。Many members of this class are unavailable in the Internet security zone.

HwndSource 、コンテンツWin32Win32を格納WPFWPFできるウィンドウを実装します。An HwndSource implements a Win32Win32 window that can contain WPFWPF content. ウィンドウ内のコンテンツは、配置、測定、および表示されます。また、入力に対して対話型です。 WPFWPFThe WPFWPF content in the window is arranged, measured, and rendered; and is interactive to input. Win32Win32はとWin32Win32相互運用できるように設計されているため、このクラスはいくつかの低レベルの機能を公開します。HwndSourceBecause the HwndSource is specifically designed to interoperate with Win32Win32, this class exposes several low-level Win32Win32 features. このクラスを使用して、次の操作を行うことができます。You can use this class to do the following:

  • ウィンドウスタイル、ウィンドウクラススタイル、および拡張ウィンドウスタイルを指定します。Specify window styles, window class styles, and extended window styles.

  • ウィンドウプロシージャをフックします。Hook the window procedure.

  • ウィンドウハンドル (HWND) へのアクセスを提供します。Provide access to the window handle (HWND).

  • ウィンドウを破棄します。Destroy the window.

クラスHwndSourceは、一般的な相互運用性を実現するように設計されており、マネージ HWND ラッパーとしては設計されていません。The HwndSource class is designed for general interoperability and is not designed as a managed HWND wrapper. 一般に、ウィンドウまたはプロパティを操作してその状態を検査するためのマネージメソッドは提供しません。In general, it does not provide managed methods for manipulating the window or properties for inspecting its state. 代わりに、クラスHwndSourceは、 Handleプロパティを使用Win32Win32してウィンドウハンドル (HWND) へのアクセスを提供します。これは、ウィンドウWin32Win32を操作するために、PInvoke 手法APIAPIsによって渡すことができます。Instead, the HwndSource class provides access to the Win32Win32 window handle (HWND) through the Handle property, which can be passed by means of PInvoke techniques to Win32Win32 APIAPIs in order to manipulate the window.

Construction

の多くの要素HwndSourceは、構築時にのみ指定できます。Many aspects of the HwndSource can only be specified at construction time. を作成HwndSourceするには、まずHwndSourceParameters構造体を作成し、必要なパラメーターを設定します。To create an HwndSource, first create an HwndSourceParameters structure and populate it with the desired parameters. 次のようなパラメーターがあります。These parameters include the following:

  • クラス、ウィンドウ、および拡張ウィンドウスタイル。The class, window, and extended window styles. ウィンドウの作成後にスタイルを変更するには、PInvoke を使用する必要があります。You must use PInvoke to change the styles after the window is created. すべてのスタイルは、ウィンドウの作成後に変更できるわけではありません。Not all styles can be changed after the window is created. ウィンドウスタイルWin32Win32を変更する前に、ドキュメントを参照してください。Consult the Win32Win32 documentation before changing window styles.

  • ウィンドウの初期位置。The initial position of the window.

  • ウィンドウの初期サイズ。サイズが指定されているかどうか、またはWPFWPFコンテンツのサイズによって決まります。The initial size of the window, which includes whether the size is specified or should be determined from the determined size of the WPFWPF content.

  • 親ウィンドウを指定します。The parent window.

  • HwndSourceHookウィンドウプロシージャチェーンに含める。The HwndSourceHook to include in the window procedure chain. 構築時にフックを指定すると、そのフックはウィンドウのすべてのメッセージを受信します。If you specify a hook at construction time, it receives all messages for the window. を使用AddHookすると、ウィンドウの作成後にフックを追加できます。You can use AddHook to add a hook after the window is created.

  • 透明度の設定。The transparency settings. 最上位レベルのウィンドウは、 WPFWPFコンテンツのピクセルごとの透明度に応じて、デスクトップ上の他のウィンドウとブレンドするように構成できます。A top-level window can be configured to blend with the other windows on the desktop according to the per-pixel transparency of the WPFWPF content. これを有効にするにUsesPerPixelOpacityは、のHwndSourceParametersプロパティtrueをに設定します。To enable this, set the UsesPerPixelOpacity property in the HwndSourceParameters to true. このプロパティは、構築時にのみ指定でき、 HwndSource(HwndSourceParameters)コンストラクターシグネチャを通じてのみ指定でき、いくつかの制限があります。This property can only be specified at construction time, and only through the HwndSource(HwndSourceParameters) constructor signature, and it imposes several limitations.

HwndSourceParameters構造体にデータを設定した後、 HwndSource(HwndSourceParameters)それをのHwndSourceコンストラクターに渡します。After you populate the HwndSourceParameters structure, pass it to the HwndSource(HwndSourceParameters) constructor for the HwndSource.

オブジェクトの有効期間Object Lifetime

HwndSourceは通常共通言語ランタイム (CLR)common language runtime (CLR)のオブジェクトであり、その有効期間はガベージコレクターによって管理されます。An HwndSource is a regular 共通言語ランタイム (CLR)common language runtime (CLR) object, and its lifetime is managed by the garbage collector. はアンHwndSourceマネージリソースを表すのHwndSourceIDisposable、はを実装します。Because the HwndSource represents an unmanaged resource, HwndSource implements IDisposable. 同期的Disposeに呼び出すとWin32Win32 、オーナースレッドから呼び出された場合、すぐにウィンドウが破棄されます。Synchronously calling Dispose immediately destroys the Win32Win32 window if called from the owner thread. 別のスレッドから呼び出されたWin32Win32場合、ウィンドウは非同期に破棄されます。If called from another thread, the Win32Win32 window is destroyed asynchronously. 相互Dispose運用コードからを明示的に呼び出すことは、特定の相互運用シナリオで必要になる場合があります。Calling Dispose explicitly from the interoperating code might be necessary for certain interoperation scenarios.

ウィンドウプロシージャWindow Procedures

クラスHwndSourceは、独自のウィンドウプロシージャを実装します。The HwndSource class implements its own window procedure. このウィンドウプロシージャは、レイアウト、レンダリング、入力に関連するメッセージなど、重要なウィンドウメッセージを処理するために使用されます。This window procedure is used to process important window messages, such as those related to layout, rendering, and input. ただし、ウィンドウプロシージャを独自に使用するようにフックすることもできます。However, you can also hook the window procedure for your own use. 作成時に独自のHwndSourceParameters.HwndSourceHookフックを指定するには、プロパティを設定します。または、ウィンドウを作成した後に、およびRemoveHookを使用AddHookしてフックを追加または削除することもできます。You can specify your own hook during construction by setting the HwndSourceParameters.HwndSourceHook property, or you can also use AddHook and RemoveHook to add and remove hooks after the window is created. フックは、後入れ先出しの順序によって呼び出されます。これにより、組み込み処理の前にフックを実行できます。The hooks are called by last-in first-out order, which enables your hooks to execute before the built-in processing. 実際のフックは弱い参照によって保持されます。The actual hooks are held by a weak reference. そのため、フックデリゲートの有効期間を管理していることを確認してください。Therefore, make sure that you manage the lifetime of your hook delegate.

HwndSourceおよびその他の相互運用クラスの詳細については、「 WPF と Win32 の相互運用」を参照してください。For more information about HwndSource and other interoperation classes, see WPF and Win32 Interoperation.

HwndSourceコンストラクターが、 CreateWindowExなどの関数のWin32Win32パラメーターに似たパラメーターを受け取る方法に注目してください。Notice how the constructors for HwndSource take parameters that resemble the parameters for Win32Win32 functions such as CreateWindowEx.

スケール変換は、 RootVisual HwndSourceのには適用できません。Scale transformations should not be applied to the RootVisual of an HwndSource. の解説をRootVisual参照してください。See Remarks for RootVisual.

コンストラクター

HwndSource(HwndSourceParameters) HwndSource(HwndSourceParameters) HwndSource(HwndSourceParameters) HwndSource(HwndSourceParameters)

初期設定を格納している構造体を使用して、HwndSource クラスの新しいインスタンスを初期化します。Initializes a new instance of the HwndSource class by using a structure that contains the initial settings.

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

クラス スタイル、スタイル、拡張スタイル、x-y 位置、幅、高さ、名前、および親ウィンドウを指定して、HwndSource クラスの新しいインスタンスを初期化します。Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, width, height, name, and parent window.

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

指定したクラス スタイル、スタイル、拡張スタイル、x-y 位置、幅、高さ、名前、および親ウィンドウを使用し、さらに、ウィンドウでサイズが自動調整されるかどうかを指定して、HwndSource クラスの新しいインスタンスを初期化します。Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, width, height, name, and parent window, and by specifying whether the window is autosized.

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

クラス スタイル、スタイル、拡張スタイル、x-y 位置、名前、および親ウィンドウを指定して、HwndSource クラスの新しいインスタンスを初期化します。Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, name, and parent window.

プロパティ

AcquireHwndFocusInMenuMode AcquireHwndFocusInMenuMode AcquireHwndFocusInMenuMode AcquireHwndFocusInMenuMode

この HwndSource のウィンドウを含む WPF の Win32 フォーカスを取得するかどうかを決定する値を取得します。Gets the value that determines whether to acquire Win32 focus for the WPF containing window for this HwndSource.

ChildKeyboardInputSinks ChildKeyboardInputSinks ChildKeyboardInputSinks ChildKeyboardInputSinks

登録された入力シンクのシーケンスを取得します。Gets a sequence of registered input sinks.

CompositionTarget CompositionTarget CompositionTarget CompositionTarget

ホストされたウィンドウのビジュアル マネージャーを取得します。Gets the visual manager for the hosted window.

DefaultAcquireHwndFocusInMenuMode DefaultAcquireHwndFocusInMenuMode DefaultAcquireHwndFocusInMenuMode DefaultAcquireHwndFocusInMenuMode

AcquireHwndFocusInMenuMode の新しいインスタンスの既定の HwndSource の値を取得または設定します。Gets or sets the default AcquireHwndFocusInMenuMode value for new instances of HwndSource.

Dispatcher Dispatcher Dispatcher Dispatcher

この Dispatcher が関連付けられている DispatcherObject を取得します。Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
Handle Handle Handle Handle

この HwndSource のウィンドウ ハンドルを取得します。Gets the window handle for this HwndSource.

IsDisposed IsDisposed IsDisposed IsDisposed

この Dispose()HwndSource が呼び出されたかどうかを示す値を取得します。Gets a value that indicates whether Dispose() has been called on this HwndSource.

KeyboardInputSiteCore KeyboardInputSiteCore KeyboardInputSiteCore KeyboardInputSiteCore

コンポーネントのコンテナーの IKeyboardInputSite インターフェイスへの参照を取得または設定します。Gets or sets a reference to the component's container's IKeyboardInputSite interface.

RestoreFocusMode RestoreFocusMode RestoreFocusMode RestoreFocusMode

ウィンドウの RestoreFocusMode を取得します。Gets the RestoreFocusMode for the window.

RootVisual RootVisual RootVisual RootVisual

ウィンドウの RootVisual を取得または設定します。Gets or sets the RootVisual of the window.

SizeToContent SizeToContent SizeToContent SizeToContent

ウィンドウのサイズをコンテンツに合わせて調整するかどうか、およびどのように調整するかを取得または設定します。Get or sets whether and how the window is sized to its content.

UsesPerPixelOpacity UsesPerPixelOpacity UsesPerPixelOpacity UsesPerPixelOpacity

ソース ウィンドウ コンテンツのピクセルごとの不透明度を使用するかどうかを示す値を取得します。Gets a value that declares whether the per-pixel opacity of the source window content is respected.

メソッド

AddHook(HwndSourceHook) AddHook(HwndSourceHook) AddHook(HwndSourceHook) AddHook(HwndSourceHook)

すべてのウィンドウ メッセージを受け取るイベント ハンドラーを追加します。Adds an event handler that receives all window messages.

AddSource() AddSource() AddSource() AddSource()

PresentationSource 派生クラスのインスタンスを既知のプレゼンテーション ソースのリストに追加します。Adds a PresentationSource derived class instance to the list of known presentation sources.

(Inherited from PresentationSource)
CheckAccess() CheckAccess() CheckAccess() CheckAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
ClearContentRenderedListeners() ClearContentRenderedListeners() ClearContentRenderedListeners() ClearContentRenderedListeners()

ContentRendered イベントのリスナーのリストを null に設定します。Sets the list of listeners for the ContentRendered event to null.

(Inherited from PresentationSource)
CreateHandleRef() CreateHandleRef() CreateHandleRef() CreateHandleRef()

HwndSource のウィンドウ ハンドルを取得します。Gets the window handle for the HwndSource. ウィンドウ ハンドルは HandleRef 構造体の一部としてパッケージ化されます。The window handle is packaged as part of a HandleRef structure.

Dispose() Dispose() Dispose() Dispose()

HwndSource によって使用されているすべてのマネージド リソースを解放し、Disposed イベントを発生させます。Releases all managed resources that are used by the HwndSource, and raises the Disposed event.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
FromHwnd(IntPtr) FromHwnd(IntPtr) FromHwnd(IntPtr) FromHwnd(IntPtr)

指定したウィンドウの HwndSource オブジェクトを返します。Returns the HwndSource object of the specified window.

GetCompositionTargetCore() GetCompositionTargetCore() GetCompositionTargetCore() GetCompositionTargetCore()

ウィンドウのビジュアル ターゲットを取得します。Gets the visual target of the window.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
HasFocusWithinCore() HasFocusWithinCore() HasFocusWithinCore() HasFocusWithinCore()

シンクまたはその中に格納されているコンポーネントのいずれかにフォーカスがあるかどうかを示す値を取得します。Gets a value that indicates whether the sink or one of its contained components has focus.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
OnDpiChanged(HwndDpiChangedEventArgs) OnDpiChanged(HwndDpiChangedEventArgs) OnDpiChanged(HwndDpiChangedEventArgs) OnDpiChanged(HwndDpiChangedEventArgs)

ウィンドウの DPI が変更されるときに呼び出されます。Called when the DPI is going to change for the window.

OnMnemonicCore(MSG, ModifierKeys) OnMnemonicCore(MSG, ModifierKeys) OnMnemonicCore(MSG, ModifierKeys) OnMnemonicCore(MSG, ModifierKeys)

このシンクのニーモニック (アクセス キー) のいずれかが起動されたときに呼び出されます。Called when one of the mnemonics (access keys) for this sink is invoked.

RegisterKeyboardInputSinkCore(IKeyboardInputSink) RegisterKeyboardInputSinkCore(IKeyboardInputSink) RegisterKeyboardInputSinkCore(IKeyboardInputSink) RegisterKeyboardInputSinkCore(IKeyboardInputSink)

格納されているコンポーネントの IKeyboardInputSink インターフェイスを登録します。Registers the IKeyboardInputSink interface of a contained component.

RemoveHook(HwndSourceHook) RemoveHook(HwndSourceHook) RemoveHook(HwndSourceHook) RemoveHook(HwndSourceHook)

AddHook(HwndSourceHook) によって追加されたイベント ハンドラーを削除します。Removes the event handlers that were added by AddHook(HwndSourceHook).

RemoveSource() RemoveSource() RemoveSource() RemoveSource()

PresentationSource 派生クラスのインスタンスを既知のプレゼンテーション ソースのリストから削除します。Removes a PresentationSource derived class instance from the list of known presentation sources.

(Inherited from PresentationSource)
RootChanged(Visual, Visual) RootChanged(Visual, Visual) RootChanged(Visual, Visual) RootChanged(Visual, Visual)

ルート Visual が変更されたことを示す通知を提供します。Provides notification that the root Visual has changed.

(Inherited from PresentationSource)
TabIntoCore(TraversalRequest) TabIntoCore(TraversalRequest) TabIntoCore(TraversalRequest) TabIntoCore(TraversalRequest)

フォーカスをシンクの最初のタブ位置または最後のタブ位置のいずれかに設定します。Sets focus on either the first tab stop or the last tab stop of the sink.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)
TranslateAcceleratorCore(MSG, ModifierKeys) TranslateAcceleratorCore(MSG, ModifierKeys) TranslateAcceleratorCore(MSG, ModifierKeys) TranslateAcceleratorCore(MSG, ModifierKeys)

キー押下メッセージのレベルでキーボード入力を処理します。Processes keyboard input at the key-down message level.

TranslateCharCore(MSG, ModifierKeys) TranslateCharCore(MSG, ModifierKeys) TranslateCharCore(MSG, ModifierKeys) TranslateCharCore(MSG, ModifierKeys)

OnMnemonic(MSG, ModifierKeys) メソッドの呼び出し前に、WM_CHAR、WM_SYSCHAR、WM_DEADCHAR、および WM_SYSDEADCHAR 入力メッセージを処理します。Processes WM_CHAR, WM_SYSCHAR, WM_DEADCHAR, and WM_SYSDEADCHAR input messages before the OnMnemonic(MSG, ModifierKeys) method is called.

VerifyAccess() VerifyAccess() VerifyAccess() VerifyAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

イベント

AutoResized AutoResized AutoResized AutoResized

レイアウトによって HwndSource のサイズが自動調整されると発生します。Occurs when layout causes the HwndSource to automatically resize.

ContentRendered ContentRendered ContentRendered ContentRendered

コンテンツがレンダリングされ、ユーザー操作を受け入れる準備が整ったときに発生します。Occurs when content is rendered and ready for user interaction.

(Inherited from PresentationSource)
Disposed Disposed Disposed Disposed

このオブジェクトで Dispose() メソッドが呼び出されると発生します。Occurs when the Dispose() method is called on this object.

DpiChanged DpiChanged DpiChanged DpiChanged

この Hwnd のモニターの DPI が変更された場合、または Hwnd がさまざまな DPI のモニターに移動された場合に発生します。Occurs when the DPI of the monitor of this Hwnd has changed, or the Hwnd is moved to a monitor with a different DPI.

SizeToContentChanged SizeToContentChanged SizeToContentChanged SizeToContentChanged

SizeToContent プロパティの値が変更された場合に発生します。Occurs when the value of the SizeToContent property changes.

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

IKeyboardInputSink.HasFocusWithin() IKeyboardInputSink.HasFocusWithin() IKeyboardInputSink.HasFocusWithin() IKeyboardInputSink.HasFocusWithin()

このメンバーの詳細については、「IList.Remove(Object)」をご覧ください。For a description of this member, see IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite IKeyboardInputSink.KeyboardInputSite IKeyboardInputSink.KeyboardInputSite IKeyboardInputSink.KeyboardInputSite

このメンバーの詳細については、「KeyboardInputSite」をご覧ください。For a description of this member, see KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

このメンバーの説明については、OnMnemonic(MSG, ModifierKeys) のトピックを参照してください。For a description of this member, see OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

このメンバーの説明については、RegisterKeyboardInputSink(IKeyboardInputSink) のトピックを参照してください。For a description of this member, see RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest) IKeyboardInputSink.TabInto(TraversalRequest) IKeyboardInputSink.TabInto(TraversalRequest) IKeyboardInputSink.TabInto(TraversalRequest)

このメンバーの説明については、TabInto(TraversalRequest) のトピックを参照してください。For a description of this member, see TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

このメンバーの説明については、TranslateAccelerator(MSG, ModifierKeys) のトピックを参照してください。For a description of this member, see TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

このメンバーの詳細については、「TranslateChar(MSG, ModifierKeys)」をご覧ください。For a description of this member, see TranslateChar(MSG, ModifierKeys).

適用対象

こちらもご覧ください