Maison > développement back-end > C++ > Comment gérer les messages WndProc dans WPF ?

Comment gérer les messages WndProc dans WPF ?

DDD
Libérer: 2025-01-22 23:08:10
original
166 Les gens l'ont consulté

How Do I Handle WndProc Messages in WPF?

Gestion des messages WndProc dans WPF

Dans Windows Forms, la gestion des messages WndProc est un processus simple. Dans WPF, cependant, l’approche est légèrement différente.

Utiliser la classe HwndSource

WPF fournit l'espace de noms System.Windows.Interop, qui contient la classe HwndSource. Cette classe permet l'interception et le traitement des messages WndProc.

Exemple de mise en œuvre

L'extrait de code suivant fournit un exemple d'utilisation de la classe HwndSource pour gérer les messages WndProc dans WPF :

<code class="language-c#">using System;
using System.Windows;
using System.Windows.Interop;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);
            HwndSource source = PresentationSource.FromVisual(this) as HwndSource;
            source.AddHook(WndProc);
        }

        private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            // 在此处处理消息...

            return IntPtr.Zero;
        }
    }
}</code>
Copier après la connexion

Dans cet exemple :

  • La méthode WndProc de la classe Window1 est remplacée pour gérer les messages entrants.
  • L'événement OnSourceInitialized est utilisé pour attacher le hook WndProc au HwndSource associé à la fenêtre.

Plus d'informations

Pour une explication plus détaillée de cette technique, consultez l'excellent article de blog de Steve Rands sur l'utilisation de WndProc personnalisé dans les applications WPF.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal