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 回答