NativeWindow.AssignHandle(IntPtr) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 창에 핸들을 할당합니다.
public:
void AssignHandle(IntPtr handle);
public void AssignHandle (IntPtr handle);
member this.AssignHandle : nativeint -> unit
Public Sub AssignHandle (handle As IntPtr)
매개 변수
- handle
-
IntPtr
nativeint
이 창에 할당할 핸들입니다.
예외
이 창에 이미 핸들이 있는 경우
연결된 네이티브 창의 창 프로시저를 검색할 수 없는 경우
예제
다음 코드 예제에서는 창 프로시저에서 운영 체제 창 메시지를 가로채는 방법을 보여 줍니다. 이 예제에서 상속 되는 클래스를 만듭니다 NativeWindow 이렇게 하려면.
합니다 MyNativeWindowListener
클래스 생성자에 전달 되는 폼의 창 프로시저로 후크 및 재정의 WndProc 메서드를 가로채는 WM_ACTIVATEAPP
창 메시지입니다. 클래스의 사용을 보여 줍니다.는 AssignHandle 및 ReleaseHandle 창을 식별 하는 메서드를 처리 합니다 NativeWindow 사용 됩니다. 핸들을 기반으로 할당 되는 Control.HandleCreated 및 Control.HandleDestroyed 이벤트입니다. 경우는 WM_ACTIVATEAPP
창 메시지를 받을 클래스 호출을 form1.ApplicationActivated
메서드.
이 코드는 예제에 표시 된 발췌 된 NativeWindow 클래스 개요입니다. 간 결함을 위해 일부 코드가 표시 되지 않습니다. 참조 NativeWindow 전체 코드 샘플에 대 한 합니다.
// NativeWindow class to listen to operating system messages.
ref class MyNativeWindowListener: public NativeWindow
{
private:
// Constant value was found in the S"windows.h" header file.
literal int WM_ACTIVATEAPP = 0x001C;
Form1^ parent;
public:
MyNativeWindowListener( Form1^ parent )
{
parent->HandleCreated += gcnew EventHandler( this, &MyNativeWindowListener::OnHandleCreated );
parent->HandleDestroyed += gcnew EventHandler( this, &MyNativeWindowListener::OnHandleDestroyed );
this->parent = parent;
}
internal:
// Listen for the control's window creation and then hook into it.
void OnHandleCreated( Object^ sender, EventArgs^ /*e*/ )
{
// Window is now created, assign handle to NativeWindow.
AssignHandle( (dynamic_cast<Form1^>(sender))->Handle );
}
void OnHandleDestroyed( Object^ /*sender*/, EventArgs^ /*e*/ )
{
// Window was destroyed, release hook.
ReleaseHandle();
}
protected:
virtual void WndProc( Message %m ) override
{
// Listen for operating system messages
switch ( m.Msg )
{
case WM_ACTIVATEAPP:
// Notify the form that this message was received.
// Application is activated or deactivated,
// based upon the WParam parameter.
parent->ApplicationActived( ((int)m.WParam != 0) );
break;
}
NativeWindow::WndProc( m );
}
};
// NativeWindow class to listen to operating system messages.
internal class MyNativeWindowListener : NativeWindow
{
// Constant value was found in the "windows.h" header file.
private const int WM_ACTIVATEAPP = 0x001C;
private Form1 parent;
public MyNativeWindowListener(Form1 parent)
{
parent.HandleCreated += new EventHandler(this.OnHandleCreated);
parent.HandleDestroyed += new EventHandler(this.OnHandleDestroyed);
this.parent = parent;
}
// Listen for the control's window creation and then hook into it.
internal void OnHandleCreated(object sender, EventArgs e)
{
// Window is now created, assign handle to NativeWindow.
AssignHandle(((Form1)sender).Handle);
}
internal void OnHandleDestroyed(object sender, EventArgs e)
{
// Window was destroyed, release hook.
ReleaseHandle();
}
protected override void WndProc(ref Message m)
{
// Listen for operating system messages
switch (m.Msg)
{
case WM_ACTIVATEAPP:
// Notify the form that this message was received.
// Application is activated or deactivated,
// based upon the WParam parameter.
parent.ApplicationActivated(((int)m.WParam != 0));
break;
}
base.WndProc(ref m);
}
}
' NativeWindow class to listen to operating system messages.
Friend Class MyNativeWindowListener
Inherits NativeWindow
' Constant value was found in the "windows.h" header file.
Private Const WM_ACTIVATEAPP As Integer = &H1C
Private parent As Form1
Public Sub New(ByVal parent As Form1)
AddHandler parent.HandleCreated, AddressOf Me.OnHandleCreated
AddHandler parent.HandleDestroyed, AddressOf Me.OnHandleDestroyed
Me.parent = parent
End Sub
' Listen for the control's window creation and hook into it.
Private Sub OnHandleCreated(ByVal sender As Object, ByVal e As EventArgs)
' Window is now created, assign handle to NativeWindow.
AssignHandle(CType(sender, Form).Handle)
End Sub
Private Sub OnHandleDestroyed(ByVal sender As Object, ByVal e As EventArgs)
' Window was destroyed, release hook.
ReleaseHandle()
End Sub
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Protected Overrides Sub WndProc(ByRef m As Message)
' Listen for operating system messages
Select Case (m.Msg)
Case WM_ACTIVATEAPP
' Notify the form that this message was received.
' Application is activated or deactivated,
' based upon the WParam parameter.
parent.ApplicationActivated(m.WParam.ToInt32() <> 0)
End Select
MyBase.WndProc(m)
End Sub
End Class
설명
WndProc 전송 창 메시지를 가로채는 handle
매개 변수입니다. 사용 하 여 ReleaseHandle 를 기본 창 프로시저로 핸들의 창 프로시저를 다시 설정 합니다.
AssignHandle 메서드 호출을 OnHandleChange 메서드를 나타내는 값을 Handle 속성이 변경 합니다.
참고
다른 애플리케이션 프로세스에서 할당에 대 한 일 수 없습니다.
적용 대상
추가 정보
.NET