2009-11-11 5 views
1

J'implémente le redimensionnement de forme en utilisant des poignées de coin. Dans certains cas, certains mouvements avec la souris tenant la poignée ne sont pas légitimes, par ex. si cela va en effet l'étendre au-delà de la limite de contrôle. Donc, ce que je voudrais faire dans ce cas est "annuler" le déplacement de la souris en vol par programmation, de sorte que la souris resterait simplement dans les limites du rectangle de la poignée stationnaire. Comment puis-je faire cela?Puis-je "annuler" le déplacement de la souris et rendre le curseur de la souris visible mais en place?

+0

Web, WinForm, WPF? –

Répondre

1

essayez d'utiliser la fonction api ClipCursor (http://msdn.microsoft.com/en-us/library/ms648383(VS.85).aspx)

Voici un exemple:

[DllImport("user32.dll")] 
static extern bool ClipCursor(ref RECT lpRect); 

public struct RECT 
{ 
    public int Left; 
    public int Top; 
    public int Right; 
    public int Bottom; 

    public RECT(int left, int top, int right, int bottom) 
    { 
     Left = left; 
     Top = top; 
     Right = right; 
     Bottom = bottom; 
    } 
} 

private void button7_Click(object sender, EventArgs e) 
{ 
    RECT rect = new RECT(Left, Top, Width, Bottom); 
    ClipCursor(ref rect); 
} 

ce qui a trait

+0

Cela fonctionne seulement quand vous avez appliqué dans une fenêtre, parce que quand vous changez à une autre fenêtre une fois appliquée, elle a perdu son effet, est-il de toute façon de l'appliquer dans toutes les fenêtres? –

Questions connexes