2009-11-11 41 views
1

我正在使用角柄实现形状大小调整。在某些情况下,用鼠标拿着手柄的某些动作是不合法的,例如,如果它实际上将其扩展到控制范围之外。所以在这种情况下,我想要做的是以编程方式“取消”飞行中的鼠标移动,以便鼠标将停留在静止的矩形框的边界内。我该怎么做呢?我可以“取消”鼠标移动,并使鼠标光标保持可见,但在适当的位置?

+0

网络,WinForm的,WPF? –

回答

1

尝试使用ClipCursor的API函数(http://msdn.microsoft.com/en-us/library/ms648383(VS.85).aspx

下面是一个例子:

[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); 
} 

问候

+0

它只适用于在窗口中应用,因为当您应用后更改为另一个窗口时,它会失去效果,是否有将它应用于所有窗口? –