Partager via


HwndSource Classe

Définition

Présente le contenu WINDOWS Presentation Foundation (WPF) dans une fenêtre Win32.

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
Héritage
Implémente

Remarques

Important

De nombreux membres de cette classe ne sont pas disponibles dans la zone de sécurité Internet.

Implémente HwndSource une fenêtre Win32 qui peut contenir du contenu WPF. Le contenu WPF dans la fenêtre est organisé, mesuré et rendu ; et est interactif pour l’entrée. Étant donné que la HwndSource classe est spécifiquement conçue pour interagir avec Win32, cette classe expose plusieurs fonctionnalités Win32 de bas niveau. Vous pouvez utiliser cette classe pour effectuer les opérations suivantes :

  • Spécifiez des styles de fenêtre, des styles de classe de fenêtre et des styles de fenêtre étendus.

  • Raccordez la procédure de fenêtre.

  • Fournir l’accès au handle de fenêtre (HWND).

  • Détruisez la fenêtre.

La HwndSource classe est conçue pour l’interopérabilité générale et n’est pas conçue comme wrapper HWND managé. En général, il ne fournit pas de méthodes managées pour manipuler la fenêtre ou les propriétés pour inspecter son état. Au lieu de cela, la HwndSource classe fournit l’accès au handle de fenêtre Win32 (HWND) par le biais de la Handle propriété, qui peut être transmis par le biais de techniques PInvoke aux API Win32 afin de manipuler la fenêtre.

Construction

De nombreux aspects de la construction HwndSource ne peuvent être spécifiés qu’au moment de la construction. Pour créer une HwndSourcestructure, commencez par créer une HwndSourceParameters structure et remplissez-la avec les paramètres souhaités. Ces paramètres incluent les éléments suivants :

  • Styles de fenêtre, de classe, de fenêtre et étendus. Vous devez utiliser PInvoke pour modifier les styles une fois la fenêtre créée. Tous les styles ne peuvent pas être modifiés une fois la fenêtre créée. Consultez la documentation Win32 avant de modifier les styles de fenêtre.

  • Position initiale de la fenêtre.

  • Taille initiale de la fenêtre, qui inclut si la taille est spécifiée ou doit être déterminée à partir de la taille déterminée du contenu WPF.

  • Fenêtre parente.

  • À HwndSourceHook inclure dans la chaîne de procédure de fenêtre. Si vous spécifiez un hook au moment de la construction, il reçoit tous les messages de la fenêtre. Vous pouvez utiliser AddHook pour ajouter un hook une fois la fenêtre créée.

  • Paramètres de transparence. Une fenêtre de niveau supérieur peut être configurée pour fusionner avec les autres fenêtres du bureau en fonction de la transparence par pixel du contenu WPF. Pour l’activer, définissez la UsesPerPixelOpacity propriété dans la HwndSourceParameterstruevaleur . Cette propriété ne peut être spécifiée qu’au moment de la construction, et uniquement par le biais de la signature du HwndSource(HwndSourceParameters) constructeur, et elle impose plusieurs limitations.

Après avoir renseigné la HwndSourceParameters structure, passez-la au HwndSource(HwndSourceParameters) constructeur pour le HwndSource.

Durée de vie de l’objet

Il HwndSource s’agit d’un objet CLR (Common Language Runtime) standard et sa durée de vie est gérée par le garbage collector. Étant donné que le HwndSource représente une ressource non managée, HwndSource implémente IDisposable. L’appel Dispose synchrone détruit immédiatement la fenêtre Win32 si elle est appelée à partir du thread propriétaire. Si elle est appelée à partir d’un autre thread, la fenêtre Win32 est détruite de façon asynchrone. L’appel Dispose explicite à partir du code d’interopérabilité peut être nécessaire pour certains scénarios d’interopérabilité.

Procédures de fenêtre

La HwndSource classe implémente sa propre procédure de fenêtre. Cette procédure de fenêtre est utilisée pour traiter des messages de fenêtre importants, tels que ceux liés à la disposition, au rendu et à l’entrée. Toutefois, vous pouvez également raccorder la procédure de fenêtre pour votre propre utilisation. Vous pouvez spécifier votre propre crochet pendant la construction en définissant la HwndSourceParameters.HwndSourceHook propriété, ou vous pouvez également utiliser AddHook et RemoveHook ajouter et supprimer des crochets une fois la fenêtre créée. Les crochets sont appelés par ordre de premier sorti dernier, ce qui permet à vos hooks d’être exécutés avant le traitement intégré. Les crochets réels sont conservés par une référence faible. Par conséquent, assurez-vous de gérer la durée de vie de votre délégué de hook.

Pour plus d’informations sur HwndSource et d’autres classes d’interopérabilité, consultez WPF et Win32 Interoperation.

Notez comment les constructeurs pour HwndSource prendre des paramètres qui ressemblent aux paramètres des fonctions Win32 telles que CreateWindowEx.

Les transformations de mise à l’échelle HwndSourcene doivent pas être appliquées à un RootVisual . Voir les remarques pour RootVisual.

Constructeurs

Nom Description
HwndSource(HwndSourceParameters)

Initialise une nouvelle instance de la classe à l’aide HwndSource d’une structure qui contient les paramètres initiaux.

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

Initialise une nouvelle instance de la HwndSource classe avec un style de classe, un style, un style étendu, une position x-y, une largeur, une hauteur, un nom et une fenêtre parente spécifiées, et en spécifiant si la fenêtre est automatiquement mise en forme.

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

Initialise une nouvelle instance de la HwndSource classe avec un style de classe, un style, un style étendu, une position x-y, une largeur, une hauteur, un nom et une fenêtre parente spécifiées.

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

Initialise une nouvelle instance de la HwndSource classe avec un style de classe, un style, un style étendu, une position x-y, un nom et une fenêtre parente spécifiées.

Propriétés

Nom Description
AcquireHwndFocusInMenuMode

Obtient la valeur qui détermine s’il faut acquérir le focus Win32 pour la fenêtre WPF contenant cette HwndSourcevaleur .

ChildKeyboardInputSinks

Obtient une séquence de récepteurs d’entrée inscrits.

CompositionTarget

Obtient le gestionnaire visuel de la fenêtre hébergée.

DefaultAcquireHwndFocusInMenuMode

Obtient ou définit la valeur par défaut AcquireHwndFocusInMenuMode pour les nouvelles instances de HwndSource.

Dispatcher

Obtient ce Dispatcher qui DispatcherObject est associé.

(Hérité de DispatcherObject)
Handle

Obtient le handle de fenêtre pour ce HwndSource.

IsDisposed

Obtient une valeur qui indique si Dispose() elle a été appelée sur ce HwndSourcefichier .

KeyboardInputSiteCore

Obtient ou définit une référence à l’interface du conteneur du IKeyboardInputSite composant.

RestoreFocusMode

Obtient la RestoreFocusMode fenêtre.

RootVisual

Obtient ou définit la RootVisual fenêtre.

SizeToContent

Obtient ou définit si la fenêtre est dimensionnée sur son contenu.

UsesPerPixelOpacity

Obtient une valeur qui déclare si l’opacité par pixel du contenu de la fenêtre source est respectée.

Méthodes

Nom Description
AddHook(HwndSourceHook)

Ajoute un gestionnaire d’événements qui reçoit tous les messages de fenêtre.

AddSource()

Ajoute une PresentationSource instance de classe dérivée à la liste des sources de présentation connues.

(Hérité de PresentationSource)
CheckAccess()

Détermine si le thread appelant a accès à ce DispatcherObjectfichier .

(Hérité de DispatcherObject)
ClearContentRenderedListeners()

Définit la liste des écouteurs pour l’événement ContentRendered sur null.

(Hérité de PresentationSource)
CreateHandleRef()

Obtient le handle de fenêtre pour le HwndSource. Le handle de fenêtre est empaqueté dans le cadre d’une HandleRef structure.

Dispose()

Libère toutes les ressources managées utilisées par l’événement HwndSourceet déclenche l’événement Disposed .

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
FromHwnd(IntPtr)

Retourne l’objet HwndSource de la fenêtre spécifiée.

GetCompositionTargetCore()

Obtient la cible visuelle de la fenêtre.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
HasFocusWithinCore()

Obtient une valeur qui indique si le récepteur ou l’un de ses composants contenus a le focus.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Appelé lorsque l’ppp va changer pour la fenêtre.

OnMnemonicCore(MSG, ModifierKeys)

Appelé lorsqu’un des mnémoniques (clés d’accès) de ce récepteur est appelé.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Inscrit l’interface IKeyboardInputSink d’un composant autonome.

RemoveHook(HwndSourceHook)

Supprime les gestionnaires d’événements qui ont été ajoutés par AddHook(HwndSourceHook).

RemoveSource()

Supprime une PresentationSource instance de classe dérivée de la liste des sources de présentation connues.

(Hérité de PresentationSource)
RootChanged(Visual, Visual)

Fournit une notification indiquant que la racine Visual a changé.

(Hérité de PresentationSource)
TabIntoCore(TraversalRequest)

Définit le focus sur le premier taquet de tabulation ou sur le dernier taquet de tabulation du récepteur.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Traite l’entrée du clavier au niveau du message de bas de touche.

TranslateCharCore(MSG, ModifierKeys)

Traite WM_CHAR, WM_SYSCHAR, WM_DEADCHAR et WM_SYSDEADCHAR messages d’entrée avant l’appel de la OnMnemonic(MSG, ModifierKeys) méthode.

VerifyAccess()

Applique que le thread appelant a accès à ce DispatcherObjectfichier .

(Hérité de DispatcherObject)

Événements

Nom Description
AutoResized

Se produit lorsque la disposition entraîne le HwndSource redimensionnement automatique.

ContentRendered

Se produit lorsque le contenu est rendu et prêt pour l’interaction utilisateur.

(Hérité de PresentationSource)
Disposed

Se produit lorsque la Dispose() méthode est appelée sur cet objet.

DpiChanged

Se produit lorsque l’ppp du moniteur de ce Hwnd a changé ou que le Hwnd est déplacé vers un moniteur avec un autre PPP.

SizeToContentChanged

Se produit quand la valeur de la propriété SizeToContent change.

Implémentations d’interfaces explicites

Nom Description
IKeyboardInputSink.HasFocusWithin()

Pour obtenir une description de ce membre, consultez IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Pour obtenir une description de ce membre, consultez KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Pour obtenir une description de ce membre, consultez OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Pour obtenir une description de ce membre, consultez RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Pour obtenir une description de ce membre, consultez TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Pour obtenir une description de ce membre, consultez TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Pour obtenir une description de ce membre, consultez TranslateChar(MSG, ModifierKeys).

S’applique à

Voir aussi