Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft das Handle für dieses Fenster ab.
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)
Syntax
'Declaration
Public ReadOnly Property Handle As IntPtr
'Usage
Dim instance As NativeWindow
Dim value As IntPtr
value = instance.Handle
public IntPtr Handle { get; }
public:
virtual property IntPtr Handle {
IntPtr get () sealed;
}
/** @property */
public final IntPtr get_Handle ()
public final function get Handle () : IntPtr
Eigenschaftenwert
Bei einem erfolgreichen Abruf ein IntPtr, der das Handle für das zugeordnete systemeigene Win32-Fenster darstellt, andernfalls 0 (null), wenn dem Fenster kein Handle zugeordnet ist.
Hinweise
Verwenden Sie diese Methode beim Aufrufen von Windows-API-Methoden, für die ein Handle für ein Fenster oder ein Steuerelement erforderlich ist.
Beispiel
Das folgende Codebeispiel veranschaulicht das Erstellen eines Fensters mit dem Namen einer bestimmten Fensterklasse des Betriebssystems. Im Beispiel wird dafür eine Klasse erstellt, die von NativeWindow erbt. Das Beispiel veranschaulicht auch das Überschreiben der OnHandleChange-Methode, die benachrichtigt wird, wenn das Handle geändert wird.
Die MyNativeWindow-Klasse erstellt ein neues Fenster, wobei der ClassName auf BUTTON festgelegt wird. Dadurch wird ein Win32-Schaltflächenfenster erstellt. Position und Größe der Schaltfläche werden zusammen mit weiteren spezifischen Fensterstilen festgelegt. Die Klasse veranschaulicht das Verwenden der CreateHandle-Methode und das Überschreiben der WndProc-Methode zum Abfangen der empfangenen Fenstermeldungen. Im Beispiel wird nach der WM_ACTIVATEAPP-Meldung gesucht. In einem echten Programm kann sie durch eine spezifische Fenstermeldung für den erstellten Typ ersetzt werden.
Hinweis
Einige Steuerelementtypen senden die Fenstermeldungen nicht an das Fenster, sondern an das übergeordnete Fenster. Weitere Informationen finden Sie im Windows Platform SDK.
// MyNativeWindow class to create a window given a class name.
ref class MyNativeWindow: public NativeWindow
{
private:
// Constant values were found in the S"windows.h" header file.
literal int WS_CHILD = 0x40000000,WS_VISIBLE = 0x10000000,WM_ACTIVATEAPP = 0x001C;
int windowHandle;
public:
MyNativeWindow( Form^ parent )
{
CreateParams^ cp = gcnew CreateParams;
// Fill in the CreateParams details.
cp->Caption = "Click here";
cp->ClassName = "Button";
// Set the position on the form
cp->X = 100;
cp->Y = 100;
cp->Height = 100;
cp->Width = 100;
// Specify the form as the parent.
cp->Parent = parent->Handle;
// Create as a child of the specified parent
cp->Style = WS_CHILD | WS_VISIBLE;
// Create the actual window
this->CreateHandle( cp );
}
protected:
// Listen to when the handle changes to keep the variable in sync
virtual void OnHandleChange() override
{
windowHandle = (int)this->Handle;
}
virtual void WndProc( Message % m ) override
{
// Listen for messages that are sent to the button window. Some messages are sent
// to the parent window instead of the button's window.
switch ( m.Msg )
{
case WM_ACTIVATEAPP:
// Do something here in response to messages
break;
}
NativeWindow::WndProc( m );
}
};
// MyNativeWindow class to create a window given a class name.
/** @attribute SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)
*/
public class MyNativeWindow extends NativeWindow
{
// Constant values were found in the "windows.h" header file.
private int WS_CHILD = 0x40000000;
private int WS_VISIBLE = 0x10000000;
private int WM_ACTIVATEAPP = 0x1C;
private int windowHandle;
public MyNativeWindow(Form parent)
{
CreateParams cp = new CreateParams();
// Fill in the CreateParams details.
cp.set_Caption("Click here");
cp.set_ClassName("Button");
// Set the position on the form
cp.set_X(100);
cp.set_Y(100);
cp.set_Height(100);
cp.set_Width(100);
// Specify the form as the parent.
cp.set_Parent(parent.get_Handle());
// Create as a child of the specified parent
cp.set_Style(WS_CHILD | WS_VISIBLE);
// Create the actual window
this.CreateHandle(cp);
} //MyNativeWindow
// Listen to when the handle changes to keep the variable in sync
protected void OnHandleChange()
{
windowHandle = this.get_Handle().ToInt32();
} //OnHandleChange
protected void WndProc(Message m)
{
// Listen for messages that are sent to the button window.
// Some messages are sent to the parent window
// instead of the button's window.
if (m.get_Msg() == WM_ACTIVATEAPP) {
// Do something here in response to messages
}
super.WndProc(m);
} //WndProc
} //MyNativeWindow
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
NativeWindow-Klasse
NativeWindow-Member
System.Windows.Forms-Namespace
AssignHandle
CreateHandle
DestroyHandle
ReleaseHandle
OnHandleChange