C#隐藏调整大小光标

时间:2009-05-30 18:33:48

标签: c# user-interface cursor

在我的程序中,我使用WndProc覆盖来阻止我的表单调整大小。事实是,当您将指针移动到窗体的边缘时,光标仍然存在。反正有没有隐藏这个光标?

4 个答案:

答案 0 :(得分:8)

为什么不适当地设置FormBorderStyle属性呢?那么您也不需要使用WndProc

以下是一些示例代码 - 单击按钮切换是否可以调整表单的大小:

using System;
using System.Windows.Forms;
using System.Drawing;

class Test
{   
    [STAThread]
    static void Main(string[] args)
    {
        Button button = new Button 
        {
            Text = "Toggle border",
            AutoSize = true,
            Location = new Point(20, 20)
        };
        Form form = new Form
        {
            Size = new Size (200, 200),
            Controls = { button },
            FormBorderStyle = FormBorderStyle.Fixed3D
        };
        button.Click += ToggleBorder;
        Application.Run(form);
    }

    static void ToggleBorder(object sender, EventArgs e)
    {
        Form form = ((Control)sender).FindForm();
        form.FormBorderStyle = form.FormBorderStyle == FormBorderStyle.Fixed3D
            ? FormBorderStyle.Sizable : FormBorderStyle.Fixed3D;
    }
}

答案 1 :(得分:7)

由于Lasse发给我的链接,我找到了使用WndProc的方法。谢谢你的答复Jon,但这不是我想要的。对于那些想知道我是怎么做的人,我用过这个:

    protected override void WndProc(ref Message m)
    {
        const int WM_NCHITTEST = 0x0084;

        switch (m.Msg)
        {
            case WM_NCHITTEST:
                return;
        }

        base.WndProc(ref m);
    }

我没有彻底测试过,所以不知道是否有任何副作用,但目前对我来说效果很好:)。

答案 2 :(得分:0)

只需设置FormBorderStyle即可。你为什么要使用WndProc?

答案 3 :(得分:0)

@Ozzy / Lasse 为我工作!

有同样的问题:

标准边框样式不提供我想要的外观,自定义CreateParams。我为Size,MinimumSize和MaximumSize指定了相同的值来禁用调整大小。由于Ozzy& amp;和调整大小的游标仍在设置中。 Lasse现在通过过滤WM_NCHITTEST ...

来处理

由于