J'ai le gestionnaire suivant de WndProc dans mon formulaire. Il convient d'empêcher le déplacement de la forme horizontalement (permettant de se déplacer verticalement seulement):Le gestionnaire WndProc est inefficace
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (!ShowCaption && m.Msg == 0x216)
{ // Trap WM_MOVING
var rc = (RECT)Marshal.PtrToStructure(m.LParam, typeof(RECT));
int w = rc.right - rc.left;
rc.left = this.Left;
rc.right = rc.left + w;
Marshal.StructureToPtr(rc, m.LParam, false);
}
base.WndProc(ref m);
}
Il fonctionne, mais lorsque l'utilisateur déplace l'augmentation très significative de l'utilisation sous forme de processeur. Qu'est-ce qui pourrait être si inefficace dans cette fonction et y a-t-il des façons de le faire?
L'utilisation élevée du processeur n'est pas nécessairement une mauvaise chose. Est-ce réellement un problème, ou pourquoi cherchez-vous l'utilisation du processeur? http://blogs.msdn.com/b/oldnewthing/archive/2010/12/03/10097861.aspx –
C'est vraiment un problème: cela provoque d'autres processus suspendus – SiberianGuy
Une attribution est nécessaire à ce site. –