Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Comment intercepter le message WM_WINDOWPOSCHANGING ? [ Windows / API ] (jagxx)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.