2

Visual Studio 2010 を初めて使用します。C++ でフォームの背景色をグラデーション カラーに設定する方法を知りたいです。オンラインでいくつかのソースを見ましたが、それは Visual Basic .NET 用のものでした。

あなたの助けに感謝 :)

4

1 に答える 1

3

vb.net または C# 構文で .NET サンプル コードを見つけることに慣れる必要があります。C++/CLI で Winforms コードを記述することはあまりありません。翻訳はかなり機械的なものなので、C++/CLI プログラミングに関する適切な本を必ず入手して、自分でガタガタと理解できるようにしてください。

とにかく、コードは非常に単純です。サイズが変更されるたびにフォームが再描画されるように、OnPaintBackground メソッドをオーバーライドしてコンストラクターを変更するだけです。

protected:
    virtual void OnPaintBackground(PaintEventArgs^ e) override {
        System::Drawing::Drawing2D::LinearGradientBrush brush(Point::Empty, Point(this->ClientSize.Width, this->ClientSize.Height), Color::Yellow, Color::Blue);
        e->Graphics->FillRectangle(%brush, 0, 0, this->ClientSize.Width, this->ClientSize.Height);
    }

コンストラクタ:

Form1(void) {
    InitializeComponent();
    SetStyle(ControlStyles::ResizeRedraw, true);
}
于 2012-06-23T11:32:18.657 に答える