HwndSource 클래스

정의

Win32 창에 WPF(Windows Presentation Foundation) 콘텐츠를 표시합니다.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
상속
구현

설명

중요

이 클래스의 많은 멤버는 Internet 보안 영역에서 사용할 수 없는 경우Many members of this class are unavailable in the Internet security zone.

HwndSource WPFWPF 콘텐츠를 포함할 수 있는 Win32Win32 창을 구현 합니다.An HwndSource implements a Win32Win32 window that can contain WPFWPF content. 창의 WPFWPF 콘텐츠를 정렬 하 고 측정 하 고 렌더링 합니다. 및는 입력에 대해 대화형입니다.The WPFWPF content in the window is arranged, measured, and rendered; and is interactive to input. HwndSourceWin32Win32와 상호 운용할 수 있도록 특별히 설계 되었기 때문에이 클래스는 몇 가지 하위 수준 Win32Win32 기능을 노출 합니다.Because 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 속성을 통해 HWND (Win32Win32 창 핸들)에 대 한 액세스를 제공 합니다 .이 속성은 PInvoke 기법을 사용 하 여 창을 조작 하기 위해 Api를 Win32Win32 하는 방법으로 전달 될 수 있습니다.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 APIs 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. 이를 사용 하려면 HwndSourceParameters에서 UsesPerPixelOpacity 속성을 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에 대 한 HwndSource(HwndSourceParameters) 생성자에 전달 합니다.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 속성을 설정 하 여 생성 중에 사용자 고유의 후크를 지정 하거나 AddHookRemoveHook를 사용 하 여 창이 만들어진 후 후크를 추가 및 제거할 수도 있습니다.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.

배율 변환은 HwndSourceRootVisual에 적용 되어서는 안 됩니다.Scale transformations should not be applied to the RootVisual of an HwndSource. RootVisual에 대 한 설명을 참조 하세요.See Remarks for RootVisual.

생성자

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)

지정된 클래스 스타일, 스타일, 확장 스타일, 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)

지정된 클래스 스타일, 스타일, 확장 스타일, 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)

지정된 클래스 스타일, 스타일, 확장 스타일, 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

HwndSource에 대해 창이 포함된 WPF에 대한 Win32 포커스를 가져올지 여부를 결정하는 값을 가져옵니다.Gets the value that determines whether to acquire Win32 focus for the WPF containing window for this HwndSource.

ChildKeyboardInputSinks

등록 된 입력 싱크의 시퀀스를 가져옵니다.Gets a sequence of registered input sinks.

CompositionTarget

호스팅된 창의 표시 관리자를 가져옵니다.Gets the visual manager for the hosted window.

DefaultAcquireHwndFocusInMenuMode

AcquireHwndFocusInMenuMode의 새 인스턴스에 대한 기본 HwndSource 값을 가져오거나 설정합니다.Gets or sets the default AcquireHwndFocusInMenuMode value for new instances of HwndSource.

Dispatcher

Dispatcher와 연결된 DispatcherObject를 가져옵니다.Gets the Dispatcher this DispatcherObject is associated with.

(다음에서 상속됨 DispatcherObject)
Handle

HwndSource의 창 핸들을 가져옵니다.Gets the window handle for this HwndSource.

IsDisposed

Dispose()에 대해 HwndSource가 호출되었는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether Dispose() has been called on this HwndSource.

KeyboardInputSiteCore

구성 요소 컨테이너의 IKeyboardInputSite 인터페이스에 대한 참조를 가져오거나 설정합니다.Gets or sets a reference to the component's container's IKeyboardInputSite interface.

RestoreFocusMode

창의 RestoreFocusMode를 가져옵니다.Gets the RestoreFocusMode for the window.

RootVisual

창의 RootVisual을 가져오거나 설정합니다.Gets or sets the RootVisual of the window.

SizeToContent

콘텐츠에 맞게 창의 크기가 여부 및 방법을 가져오거나 설정 합니다.Get or sets whether and how the window is sized to its content.

UsesPerPixelOpacity

원본 창 콘텐츠의 픽셀별 불투명도가 적용되는지 여부를 선언하는 값을 가져옵니다.Gets a value that declares whether the per-pixel opacity of the source window content is respected.

메서드

AddHook(HwndSourceHook)

모든 창 메시지를 받는 이벤트 처리기를 추가 합니다.Adds an event handler that receives all window messages.

AddSource()

PresentationSource 파생 클래스 인스턴스를 알려진 표시 소스 목록에 추가합니다.Adds a PresentationSource derived class instance to the list of known presentation sources.

(다음에서 상속됨 PresentationSource)
CheckAccess()

호출 스레드가 이 DispatcherObject에 액세스할 수 있는지 여부를 확인합니다.Determines whether the calling thread has access to this DispatcherObject.

(다음에서 상속됨 DispatcherObject)
ClearContentRenderedListeners()

ContentRendered 이벤트에 대한 수신기 목록을 null로 설정합니다.Sets the list of listeners for the ContentRendered event to null.

(다음에서 상속됨 PresentationSource)
CreateHandleRef()

HwndSource에 대한 창 핸들을 가져옵니다.Gets the window handle for the HwndSource. 창 핸들은 HandleRef 구조체의 일부로 패키지됩니다.The window handle is packaged as part of a HandleRef structure.

Dispose()

HwndSource에서 사용하는 관리되는 리소스를 모두 해제하고 Disposed 이벤트를 발생시킵니다.Releases all managed resources that are used by the HwndSource, and raises the Disposed event.

Equals(Object)

지정한 개체가 현재 개체와 같은지를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
FromHwnd(IntPtr)

지정된 창의 HwndSource 개체를 반환합니다.Returns the HwndSource object of the specified window.

GetCompositionTargetCore()

창의 표시 대상을 가져옵니다.Gets the visual target of the window.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
HasFocusWithinCore()

싱크 또는 싱크에 포함된 된 구성 요소 중 하나에 포커스가 있는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the sink or one of its contained components has focus.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
OnDpiChanged(HwndDpiChangedEventArgs)

창의 DPI가 변경될 때 호출됩니다.Called when the DPI is going to change for the window.

OnMnemonicCore(MSG, ModifierKeys)

이 싱크에 대 한 니모닉 (선택 키) 중 하나가 호출 될 때 호출 됩니다.Called when one of the mnemonics (access keys) for this sink is invoked.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

포함된 구성 요소의 IKeyboardInputSink 인터페이스를 등록합니다.Registers the IKeyboardInputSink interface of a contained component.

RemoveHook(HwndSourceHook)

AddHook(HwndSourceHook)로 추가된 이벤트 처리기를 제거합니다.Removes the event handlers that were added by AddHook(HwndSourceHook).

RemoveSource()

PresentationSource 파생 클래스 인스턴스를 알려진 표시 소스 목록에서 제거합니다.Removes a PresentationSource derived class instance from the list of known presentation sources.

(다음에서 상속됨 PresentationSource)
RootChanged(Visual, Visual)

루트 Visual이 변경된 알림을 제공합니다.Provides notification that the root Visual has changed.

(다음에서 상속됨 PresentationSource)
TabIntoCore(TraversalRequest)

첫 번째 탭 정지 또는 싱크의 마지막 탭 정지에 포커스를 설정 합니다.Sets focus on either the first tab stop or the last tab stop of the sink.

ToString()

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Keydown 메시지 수준에서 키보드 입력을 처리합니다.Processes keyboard input at the key-down message level.

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()

호출 스레드에서 이 DispatcherObject에 액세스할 수 있는지 확인합니다.Enforces that the calling thread has access to this DispatcherObject.

(다음에서 상속됨 DispatcherObject)

이벤트

AutoResized

레이아웃에서 HwndSource의 크기를 자동으로 조정할 때 발생합니다.Occurs when layout causes the HwndSource to automatically resize.

ContentRendered

콘텐츠가 렌더링되고 상호 작용할 준비가 되면 발생합니다.Occurs when content is rendered and ready for user interaction.

(다음에서 상속됨 PresentationSource)
Disposed

이 개체에서 Dispose() 메서드가 호출될 때 발생합니다.Occurs when the Dispose() method is called on this object.

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

SizeToContent 속성 값이 변경되면 발생합니다.Occurs when the value of the SizeToContent property changes.

명시적 인터페이스 구현

IKeyboardInputSink.HasFocusWithin()

이 멤버에 대한 설명은 IList.Remove(Object)를 참조하세요.For a description of this member, see IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

이 멤버에 대한 설명은 KeyboardInputSite를 참조하세요.For a description of this member, see KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

이 멤버에 대한 설명은 OnMnemonic(MSG, ModifierKeys)를 참조하세요.For a description of this member, see OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

이 멤버에 대한 설명은 RegisterKeyboardInputSink(IKeyboardInputSink)를 참조하세요.For a description of this member, see RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

이 멤버에 대한 설명은 TabInto(TraversalRequest)를 참조하세요.For a description of this member, see TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

이 멤버에 대한 설명은 TranslateAccelerator(MSG, ModifierKeys)를 참조하세요.For a description of this member, see TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

이 멤버에 대한 설명은 TranslateChar(MSG, ModifierKeys)를 참조하세요.For a description of this member, see TranslateChar(MSG, ModifierKeys).

적용 대상

추가 정보