Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Intercepter le message WM_WINDOWPOSCHANGING d'une fenêtre extern e

1 réponse
Avatar
Jag
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 pour
traiter le message, mais je suis un peu perdu. Quelqu'un pourrait il m'aider
svp ?

Merci d'avance

Jag

1 réponse

Avatar
Jag
Supplément...

J'utilise une class héritant de NativeWindow et j'assigne le Handle de la
fenêtre externe mais les messages ne parviennent pas à ma Form. Voici le code
:

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

public Form1()
{
InitializeComponent();
MyNativeWindow nw = new MyNativeWindow();
nw.AssignHandle((IntPtr)FindWindow(null, "window2"));
}
}

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

protected override void WndProc(ref Message m)
{
MessageBox.Show(m.Msg.ToString());

switch (m.Msg)
{
case WM_WINDOWPOSCHANGING:

MessageBox.Show("ww");

break;
}
base.WndProc(ref m);
}
}

Quelqu'un aurait il une idée ? Merci d'avance.

Jag

"Jag" a écrit :

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 pour
traiter le message, mais je suis un peu perdu. Quelqu'un pourrait il m'aider
svp ?

Merci d'avance

Jag