在C++Builder 中如何通过TPaintBox控件来绘制一张柱状图
时间: 2024-03-02 09:50:44 浏览: 134
绘制柱状图的C++类(含demo)
5星 · 资源好评率100%
要在C++Builder中通过TPaintBox控件来绘制一张柱状图,可以按照以下步骤进行:
1.在Form上放置一个TPaintBox控件,并设置其属性Align为alClient,使其占据整个Form的空间。
2.在TPaintBox的OnPaint事件中编写绘制代码。可以使用Canvas属性的方法来绘制图形。
以下是一个简单的示例代码,可以绘制一张简单的柱状图:
```cpp
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
const int data[] = {10, 20, 30, 40, 50}; // 数据
const int barWidth = 50; // 柱子宽度
const int barGap = 20; // 柱子之间的空隙
TCanvas *canvas = PaintBox1->Canvas;
// 设置画笔和画刷
canvas->Pen->Color = clBlack;
canvas->Brush->Color = clGray;
// 绘制坐标轴
canvas->MoveTo(50, PaintBox1->Height - 50);
canvas->LineTo(50, 50);
canvas->LineTo(PaintBox1->Width - 50, 50);
// 绘制柱状图
int x = 50 + barGap;
for (int i = 0; i < 5; i++) {
int height = data[i] * (PaintBox1->Height - 100) / 50; // 计算柱子高度
canvas->Rectangle(x, PaintBox1->Height - 50 - height, x + barWidth, PaintBox1->Height - 50);
x += barWidth + barGap;
}
}
```
在上述示例代码中,我们首先定义了一个整型数组data来存储柱状图的数据。然后定义了柱子的宽度barWidth和柱子之间的空隙barGap。在绘制代码中,我们首先设置画笔和画刷,然后绘制坐标轴。接着使用一个循环来绘制每个柱子,计算柱子的高度,并使用Rectangle方法来绘制矩形柱子。
运行程序后,我们就可以看到绘制出来的柱状图了。
阅读全文