begin process at 2010 02 10 10:46:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

API

 > 

Comment intercepter le message WM_WINDOWPOSCHANGING ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment intercepter le message WM_WINDOWPOSCHANGING ?

lundi 5 mai 2008 à 16:17:22 | Comment intercepter le message WM_WINDOWPOSCHANGING ?

jagxx

Membre Club
Bonjour,

J'aimerais intercepter le message WM_WINDOWPOSCHANGING d'une fenêtre externe (Titre : "window2") à mon application afin d'en interdire le deplacement. Je recupere le handle de "window2" avec la fonction API FindWindow(null, "window2"). Je pense qu'il faut ensuite utiliser la fonction C# WndProc, mais je suis un peu perdu. Quelqu'un pourrait il m'aider svp ?

Merci d'avance

Jag
mardi 6 mai 2008 à 10:25:30 | Re : Comment intercepter le message WM_WINDOWPOSCHANGING ?

sebmafate

Membre Club Administrateur CodeS-SourceS
En fait... sur le principe, tu n'es pas loin.

Il faut que tu crées une classe héritant de NativeWindow.
Ensuite, tu lui assignes le handle de "window2" avec la méthode AssignHandle... et ensuite tu surcharges la méthode WndProc pour intercepter le message WM_WINDOWSPOSCHANGING.

Un conseil, crée un destructeur sur ta classe pour appeler la méthode ReleaseHandle().


Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
vendredi 9 mai 2008 à 20:28:40 | Re : Comment intercepter le message WM_WINDOWPOSCHANGING ?

jagxx

Membre Club
Je cré une classe héritant de NativeWindow... Faut-il ensuite que j'instancie un objet dans la classe Form1 du projet Windows? J'ai essaié plusieurs scénario mais je n'y arrive pas. Help me, please :) Merci

Jagxx
samedi 10 mai 2008 à 22:34:19 | Re : Comment intercepter le message WM_WINDOWPOSCHANGING ?

jagxx

Membre Club
Voici le code qui ne fonctionne pas :

public partial class Form1 : Form
    {
        [DllImport("User32.dll")]
        public static extern int FindWindow(string lpClassName, string lpWindowName);        

        public Form1()
        {
            InitializeComponent();
            MyNativWindow mnw = new MyNativWindow();
            mnw.AssignHandle((IntPtr)FindWindow(null, "Calculatrice"));
        }
    }

    public class MyNativWindow : NativeWindow
    {
        const int WM_WINDOWPOSCHANGING = 0x0046;

        protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);

            if (m.Msg == WM_WINDOWPOSCHANGING)
            {
                MessageBox.Show("a");
            }
        }  
    }

Quelqu'un a t-il une idée ?


Cette discussion est classée dans : message, wm, intercepter, windowposchanging, window2


Répondre à ce message

Sujets en rapport avec ce message

Intercepter les messages windows [ par jagxx ] Bonjour,Je me permets de créer un nouveau message bien que le dernier est du05.05.08 et qu'il concerne le même sujet mais avec des petites modificatio code javacript permettant verifier formulaire est rempli [ par cristella ] Bonjour! Je voudrais vérifier que le formulaire d'insertion des données dans la base,a été rempli au complet et sil nest pas rempli au complet un mess InvaLidOperationException après envoi de Message par Socket Asynchrone [ par sebkill25 ] Bonjour,Dans une application Client/serveur de messagerie instantannée j'ai les fonctions suivantes permettant la réception d'un message envoyé.Code : Poster/Lire des message entre process [ par deuchman ] Bonjour,Est-il possible qu'un process post des messages, style sur un standard output propriétaire pour qu'un autre process puisse venir les lires ?Et Utilisation d'outlook [ par M_karim8 ] Bonjour,Voila mon problème : Je cherche à pouvoir envoyer un mail par l'intermédiaire de outlook.Je m'explique, Il faut que lorsque je clique sur mon Problème avec MSMQ (Microsoft Message Queue) [ par vince1303 ] Bonjour,J'ai le message suivant "Target type array is missing. The target type array must be set in order to deserialize the XML-formatted message." a Serveur multiclient [ par xankow ] Salut,je suis en train de developper une application en C#, mais je n'en pas beaucoup de base dans ce langage.J'ai trouver plusieur sources qui m'ont message entre formes [ par helmi2008 ] salut,j'ai deux formes forme2 et forme3: forme 2 contient textbox  t1 et bouton valider:si je clique sur valider form3 s'ouvre;je veux avoir dans form Lancer un serveur en arriere plan [ par zorro95 ] Bonjour tout le monde,Je suis nouveau sur le forum et c'est la premiere fois que je poste un message pour la simple raison que j'ai pratiquement toujo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales