0

C# でウィンドウのウィンドウ スタイルを変更しようとしています。

ウィンドウのハンドルを持っています。ウィンドウ スタイルを変更するメッセージをウィンドウに送信するにはどうすればよいですか?

私の目的は、ウィンドウを縁なしにすることです。

4

1 に答える 1

3

実際に既存のウィンドウのスタイルを変更する必要がありますか、それとも最初から特定のスタイルでウィンドウを作成する必要がありますか? それが前者の場合(質問の残りの部分では、そのように聞こえます)、あなたの(またはそれが何であれ)CreateParamsのプロパティをオーバーライドし、戻り値の、およびプロパティの値を変更するだけです:FormClassStyleStyleExStyle

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

既存のウィンドウのスタイルを変更するには、P/Invoke を使用して呼び出し、ウィンドウの現在の値(または必要な方)GetWindowLongを取得し、必要に応じてビットを反転し、呼び出して元に戻す必要があります。両方の関数の P/Invoke シグネチャと、でそれらを使用する例を見つけることができますGWL_STYLEGWL_EXSTYLESetWindowLongGWL_EXSTYLE

于 2009-08-13T05:27:59.700 に答える