HwndSource 클래스

정의

Win32 창에 WPF(Windows Presentation Foundation) 콘텐츠를 표시합니다.

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 창을 조작하기 위해 PInvoke 기술을 통해 Win32 API에 전달할 수 있는 속성을 통해 Handle Win32 창 핸들(HWND)에 대한 액세스를 제공합니다.

건설

의 많은 측면은 HwndSource 생성 시간에만 지정할 수 있습니다. 을 HwndSource만들려면 먼저 구조를 만들고 HwndSourceParameters 원하는 매개 변수로 채웁다. 이러한 매개 변수에는 다음이 포함됩니다.

  • 클래스, 창 및 확장 창 스타일입니다. 창을 만든 후에는 PInvoke를 사용하여 스타일을 변경해야 합니다. 창을 만든 후에 모든 스타일을 변경할 수 있는 것은 아닙니다. 창 스타일을 변경하기 전에 Win32 설명서를 참조하세요.

  • 창의 초기 위치입니다.

  • 창의 초기 크기입니다. 여기에는 크기가 지정되었는지 아니면 WPF 콘텐츠의 결정된 크기에서 결정되어야 하는지 여부가 포함됩니다.

  • 부모 창입니다.

  • HwndSourceHook 창 프로시저 체인에 포함할 입니다. 생성 시 후크를 지정하면 창에 대한 모든 메시지가 수신됩니다. 창을 만든 후 를 사용하여 AddHook 후크를 추가할 수 있습니다.

  • 투명도 설정입니다. WPF 콘텐츠의 픽셀당 투명도에 따라 데스크톱의 다른 창과 혼합되도록 최상위 창을 구성할 수 있습니다. 이를 사용하도록 설정하려면 의 UsesPerPixelOpacity 속성을 로 HwndSourceParameterstrue설정합니다. 이 속성은 생성 시 생성자 서명을 통해 HwndSource(HwndSourceParameters) 서만 지정할 수 있으며 몇 가지 제한 사항이 적용됩니다.

구조체를 HwndSourceParameters 채한 후 에 대한 생성자에 전달 HwndSource(HwndSourceParameters) 합니다 HwndSource.

개체 수명

HwndSource 일반 CLR(공용 언어 런타임) 개체이며 수명은 가비지 수집기에서 관리됩니다. 는 HwndSource 관리되지 않는 리소스를 나타내므로 를 HwndSource 구현합니다.IDisposable 동기적으로 호출 Dispose 하면 소유자 스레드에서 호출된 경우 Win32 창이 즉시 삭제됩니다. 다른 스레드에서 호출되면 Win32 창이 비동기적으로 제거됩니다. 상호 운용 코드에서 명시적으로 호출 Dispose 하는 것은 특정 상호 운용 시나리오에 필요할 수 있습니다.

창 프로시저

클래스는 HwndSource 자체 창 프로시저를 구현합니다. 이 창 프로시저는 레이아웃, 렌더링 및 입력과 관련된 중요한 창 메시지를 처리하는 데 사용됩니다. 그러나 고유한 용도로 창 프로시저를 후크할 수도 있습니다. 생성 중에 속성을 설정 HwndSourceParameters.HwndSourceHook 하여 고유한 후크를 지정하거나 및 를 사용하여 AddHookRemoveHook 창을 만든 후 후크를 추가하고 제거할 수도 있습니다. 후크는 기본 제공 처리 전에 후크를 실행할 수 있도록 하는 마지막 첫 번째 순서로 호출됩니다. 실제 후크는 약한 참조에 의해 유지됩니다. 따라서 후크 대리자의 수명을 관리해야 합니다.

및 기타 상호 운용 클래스에 대한 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)

keydown 메시지 수준에서 키보드 입력을 처리합니다.

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)를 참조하세요.

적용 대상

추가 정보