Le principe est simple : nous allons récupérer le message windows WM_NCHITTEST et vérifier sa valeur de retour, si cette dernière est HTCAPTION, l'utilisateur a déplacé sa souris au dessus de la barre de titre de son application, donc, nous modifions cette valeur pour faire croire à Windows que son curseur est dans la partie cliente.
private const int WM_NCHITTEST = 0x84;
private const int HTCAPTION = 2;
private const int HTCLIENT = 1;
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_NCHITTEST && m.Result == new IntPtr(HTCAPTION)) {
m.Result = new IntPtr(HTCLIENT);
}
}