我可以“取消”鼠标移动并使鼠标光标保持可见但是到位吗?

时间:2009-11-11 02:37:06

标签: c# .net mouse

我正在使用角手柄实现形状调整。在某些情况下,用鼠标握住手柄的某些动作是不合法的,例如,如果它实际上将它扩展到控制边界之外。所以我想在这种情况下做的是“取消”鼠标在程序上的移动,这样鼠标就会停留在固定句柄矩形的边界内。我该怎么做?

1 个答案:

答案 0 :(得分: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);
}

问候