如何写入(Bitmap?)图像缓冲区以获得更快的GDI +显示?

Jon*_*age 1 .net buffer drawing gdi+ bitmap

使用C++和.net我想要显示一个数据流作为滚动图像.每次我得到一些新数据时,我想将其添加为新行(128x1像素)并将之前的内容滚动到一侧.

我对这个问题的第一次尝试涉及每次获得新行时渲染整个数据集.这有效,但速度太慢,所以我认为写入某种缓冲区可能更有意义(可能是位图?).问题是我无法看到我能做到这一点; Graphic对象允许你画得很开心,但我看不出一种明显的方法告诉我的控件使用一个Bitmap对象作为它的缓冲区?同样,我看不到一种绘制位图的方法,然后我可以将其写入屏幕.

这一定是可能的,但到目前为止我的google-foo已经失败了......

[编辑1]为了澄清,数据是一个频谱图.下图显示了我试图实现的那种事情:

alt text http://www.geekops.co.uk/photos/0000-00-02%20(Forum%20images)/ScrollingGraphicsAlgorithmExplanation.png

我正在绘制的数据来自浮点数组.没有什么可以限制我会得到多少,所以我只想忘记数据,因为它从情节的一侧掉落.

我目前正在从a继承System::Windows::Forms::UserControl,但如果有更好的替代品,可以切换到别的东西吗?

Pau*_*der 5

看一下ScrollWindow win32方法.您可以滚动屏幕上的现有数据,然后仅绘制新数据.这非常快.