如何在Visual C ++中为窗体设置渐变背景颜色?

时间:2012-06-23 07:10:31

标签: winforms visual-studio-2010 visual-c++ linear-gradients

我是Visual Studio 2010的新手。 我想知道如何将表单的背景颜色设置为c ++中的渐变颜色。 我在网上看到了一些源代码,但那是针对Visual Basic .NET的。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:3)

您将不得不习惯于在vb.net或C#语法中查找.NET示例代码,因此通常不会在C ++ / CLI中编写Winforms代码。翻译是相当机械化的,所以一定要在C ++ / CLI编程上获得一本不错的书,这样你就可以自己喋喋不休。

Anyhoo,代码非常简单,只需覆盖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);
}