0

我正在尝试在 c# 中更改窗口的窗口样式。

我有窗户的把手。如何向窗口发送消息以更改其窗口样式?

我的目的是使窗口无边框。

4

1 回答 1

3

您真的需要更改现有窗口的样式,还是需要从一开始就使用给定的样式创建它?如果它是前者(听起来像,根据你的问题的其余部分),那么你只需覆盖CreateParams你的Form(或任何它)上的属性并更改返回值上的ClassStyle,StyleExStyle属性:

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams createParams = base.CreateParams;
            createParams.Style |= WS_...;
            return createParams;
        }
    }

要更改现有窗口的样式,您必须使用 P/Invoke 调用GetWindowLong来检索窗口的当前值GWL_STYLE(或GWL_EXSTYLE,无论您需要什么),根据需要翻转位,然后调用SetWindowLong将其设置回来。您可以在此处找到这两个函数的 P/Invoke 签名,以及将它们与 一起使用的GWL_EXSTYLE示例。

于 2009-08-13T05:27:59.700 回答