2

请告诉我如何制作带有圆边的形状(Winforms。)找到这个代码,但它有问题。当你拖动一个形状时,它是不好的。而且里面的一些控件也有绘画的问题。

  [DllImport("Gdi32.dll")]
    public static extern IntPtr CreateRoundRectRgn(int nLeftRect,
                                                   int nTopRect,
                                                   int nRightRect,
                                                   int nBottomRect,
                                                   int nWidthEllipse,
                                                   int nHeightEllipse);
    [DllImport("user32.dll")]
    public static extern int SetWindowRgn(IntPtr hWnd, IntPtr hRgn, bool bRedraw);

    /// <summary>
    /// radius
    /// </summary>
    public int Radius = 0;

    public AfyForm()
    {
        InitializeComponent();
        min_max_closeEvents();
        borderEvents();

    }

min_max_closeEvents(); 边界事件();- 边界绘画的方法

4

1 回答 1

1

我想如果你想要什么special in GUI,试着搬到 WPF,你一定会喜欢的。对于不需要在 GUI 中进行太多自定义的简单应用程序,您可以使用winforms,但无论如何,WPF我们迟早应该做的事情。这是我最近完成的代码。这个想法很简单。首先我们创建一个Regionof rounded rectangle shape,然后将此区域分配给Region表单的属性。但是对于Draw边界,如果您创建类似的GraphicsPath并绘制甚至填充它,则border看起来不会很好,因为gap最外边缘和GraphicsPath.

这是演示的链接

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

于 2013-09-20T19:06:18.890 回答